   #Start Contents Wersja dla Linuksa

      Porownanie dyrektyw i sposobow kompilacji roznych kompilatorow

   (przeskocz roznice skladni)

   CAPTION: Najwazniejsze roznice miedzy dyrektywami TASMa, FASMa, NASMa,
   MASMa i Watcom Asemblera

   typ dyrektywy
   NASM FASM TASM / MASM / WA
   deklaracje danych
   NASM: db, dw, dd, dq, dt
   FASM: db, dw/du, dd, dp/df, dq, dt
   TASM/MASM/WA: db, dw, dd, dp/df, dq, dt
     _________________________________________________________________

   rezerwacja niezainicjalizowanej pamieci
   NASM: resb, resw, resd, resq, rest
   FASM: rb, rw, rd, rp/rf, rq, rt
   TASM/MASM/WA: db/dw/dd/dp/dq/dt liczba DUP(?)
     _________________________________________________________________

   deklaracje tablic
   NASM: TIMES 10 db "$"
   TIMES 25*34 db/dw/dd/dp/df/dq/dt 0
   resb/resw/resd/resq/rest 25*34 FASM: TIMES 10 db "$"
   TIMES 25*34 db/dw/dd/dp/df/dq/dt 0
   rb/rw/rd/rp/rf/rq/rt 25*34 TASM/MASM/WA: db 10 dup("$")
   db/dw/dd/dp/df/dq/dt 25 dup (34 dup(0))
   db/dw/dd/dp/df/dq/dt 25 dup (34 dup(?))
     _________________________________________________________________

   operacje liczbowe i bitowe
   NASM: +, -, *, /, %, |, ^, &, <<, >>, ~
   FASM: +, -, *, /, mod, or, xor, and, shl, shr, not
   TASM/MASM/WA: +, -, *, /, mod, or, xor, and, shl, shr, not
     _________________________________________________________________

   deklaracje stalych
   NASM: %define, %idefine, %xdefine, %xidefine, equ
   FASM: =, equ
   TASM/MASM/WA: =, equ
     _________________________________________________________________

   etykiety anonimowe
   NASM: tylko w trybie zgodnosci z TASMem
   FASM: @@, @b/@r, @f
   TASM/MASM/WA: @@, @b, @f
     _________________________________________________________________

   makra
   NASM: %macro, %imacro nazwa liczba_arg ... %endm
   FASM: macro nazwa arg {...}
   TASM/MASM/WA: nazwa macro arg ... endm
     _________________________________________________________________

   kompilacja warunkowa
   NASM: %if, %if(n)def, %elif, %else, %endif
   FASM: if, else if, else, end if
   TASM/MASM/WA: if***, elseif, else, endif
     _________________________________________________________________

   struktury
   NASM: struc nazwa ... endstruc
   FASM: struc nazwa {...}
   TASM/MASM/WA: nazwa struc ... ends
     _________________________________________________________________

   symbole zewnetrzne
   NASM: extern, global
   FASM: extrn, public
   TASM/MASM/WA: extrn, public
     _________________________________________________________________

   segmenty
   NASM: segment nazwa
   FASM: segment nazwa ; (format MZ)
   TASM/MASM/WA: nazwa segment
     _________________________________________________________________

   dostepnosc instrukcji
   NASM: wszystkie domyslnie dostepne
   dyrektywa CPU FASM: wszystkie zawsze dostepne
   TASM/MASM/WA: .8086, .186, .286, .386, .486, .586, .686, .mmx, .xmm
     _________________________________________________________________

   typowy poczatek programu .com
   NASM: org 100h
     _________________________________________________________________

   FASM:
   format binary
   org 100h
     _________________________________________________________________

   TASM/MASM/WA:
   .model tiny
   .code
   org 100h
   start:
     _________________________________________________________________

   typowy poczatek programu .exe
   NASM: ..start:
     _________________________________________________________________

   FASM:
   format MZ
   stack 400h
   entry kod:start
   segment kod
   start:
     _________________________________________________________________

   TASM/MASM/WA:
   .model small
   .stack 400h
   .code
   start:
     _________________________________________________________________

   CAPTION: Sposoby kompilacji w TASM, FASM, NASM, MASM i Watcom
   Asemblerze

   typ programu NASM FASM TASM MASM (16-bitowy) WA
   .com
   nasm -f bin -o prog.com prog.asm
     _________________________________________________________________

   fasm prog.asm prog.com
     _________________________________________________________________

   tasm prog.asm
   tlink /t prog.obj
     _________________________________________________________________

   ml prog.asm
     _________________________________________________________________

   wasm -fpi87 prog.asm
   wlink system dos com f prog.obj name prog.com
     _________________________________________________________________

   .exe
   nasm -f obj -o prog.obj prog.asm
   val prog.obj,prog.exe,,,
     _________________________________________________________________

   fasm prog.asm prog.exe
     _________________________________________________________________

   tasm prog.asm
   tlink prog.obj
     _________________________________________________________________

   ml prog.asm
     _________________________________________________________________

   wasm -fpi87 prog.asm
   wlink system dos f prog.obj name prog.exe
     _________________________________________________________________

   Spis tresci off-line (klawisz dostepu 1)
   Spis tresci on-line (klawisz dostepu 2)
   Ulatwienia dla niepelnosprawnych (klawisz dostepu 0)
