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 pamięci |
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 stałych |
NASM: %define, %idefine,
%xdefine, %xidefine,
equ |
FASM: =, equ |
TASM/MASM/WA: =, equ |
etykiety anonimowe |
NASM: tylko w trybie zgodności 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 zewnętrzne |
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 |
dostępność instrukcji |
NASM: wszystkie domyślnie dostępne dyrektywa CPU |
FASM: wszystkie zawsze dostępne |
TASM/MASM/WA: .8086, .186, .286, .386, .486, .586, .686, .mmx, .xmm |
typowy początek programu .com |
NASM: org 100h |
FASM: format binary org 100h |
TASM/MASM/WA: .model tiny .code org 100h start: |
typowy początek programu .exe |
NASM: ..start: |
FASM: format MZ stack 400h entry kod:start segment kod start: |
TASM/MASM/WA: .model small .stack 400h .code start: |
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 |