   #Start Contents Wersja dla DOSa

                      Porownanie dyrektyw FASMa i NASMa

   (przeskocz roznice skladni)

   CAPTION: Najwazniejsze roznice miedzy dyrektywami FASMa i NASMa

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

   rezerwacja niezainicjalizowanej pamieci
   NASM: resb, resw, resd, resq, rest
   FASM: rb, rw, rd, rp/rf, rq, rt
     _________________________________________________________________

   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
     _________________________________________________________________

   operacje logiczne
   NASM: +, -, *, /, %, |, ^, &, <<, >>, ~
   FASM: +, -, *, /, mod, or, xor, and, shl, shr, not
     _________________________________________________________________

   deklaracje stalych
   NASM: %define, %idefine, %xdefine, %xidefine, equ
   FASM: =, equ
     _________________________________________________________________

   etykiety anonimowe
   NASM: nie ma
   FASM: @@, @b/@r, @f
     _________________________________________________________________

   makra
   NASM: %macro, %imacro nazwa ilosc_arg ... %endm
   FASM: macro nazwa arg {...}
     _________________________________________________________________

   kompilacja warunkowa
   NASM: %if, %if(n)def, %elif, %else, %endif
   FASM: if, else if, else, end if
     _________________________________________________________________

   struktury
   NASM: struc nazwa ... endstruc
   FASM: struc nazwa {...}
     _________________________________________________________________

   symbole zewnetrzne
   NASM: extern, global
   FASM: extrn, public
     _________________________________________________________________

   segmenty
   NASM: segment nazwa, section nazwa
   FASM:
   ELF: section "nazwa" executable/writeable
   ELF executable: segment readable/writeable/executable
     _________________________________________________________________

   typowy poczatek linkowanego programu linuksowego
   NASM:
   section .text
   global _start
   _start:
     _________________________________________________________________

   FASM:
   format ELF
   section ".text" executable
   public _start
   _start:
     _________________________________________________________________

   typowy poczatek nielinkowanego programu linuksowego
   NASM: nie ma, zawsze trzeba linkowac
     _________________________________________________________________

   FASM:
   format ELF executable
   segment readable executable
     _________________________________________________________________

   CAPTION: Sposoby kompilacji w kompilatorach FASM i NASM

   typ programu NASM FASM
   binarny
   nasm -f bin -o prog.bin prog.asm
     _________________________________________________________________

   fasm prog.asm prog.bin
     _________________________________________________________________

   obiekt ELF
   nasm -f elf -o prog.o prog.asm
     _________________________________________________________________

   fasm prog.asm prog.o
     _________________________________________________________________

   wykonywalny ELF
   nasm -f elf -o prog.o prog.asm
   ld -s -o prog prog.o
     _________________________________________________________________

   fasm prog.asm prog
     _________________________________________________________________

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