   #Start Contents

                        Roznice skladni AT&T i Intel

   CAPTION: Roznice miedzy skladnia Intela a AT&T

   Cecha Intel AT&T
   Liczby w instrukcjach
   (z wyjatkiem adresow) 12345678
   $12345678
     _________________________________________________________________

   Rejestry
   eax, ebx, cs, cr0, dr0, tr6, st(0)/st0
   %eax, %ebx, % cs, %cr0, %db0, %tr6, %st(0)
     _________________________________________________________________

   Adresy bezwzgledne w skokach
   12345678
   *12345678
   brak gwiazdki oznacza adres wzgledem biezacego EIP
     _________________________________________________________________

   Kolejnosc argumentow w instrukcjach
   mov eax, ebx
   imul ebx, eax, 69
   movl %ebx, %eax
   imul $69, %eax, %ebx
     _________________________________________________________________

   Przyrostki rozmiarowe
   mov al, byte ptr [abcd]
   mov bx, word ptr [efgh]
   mov ecx, dword ptr [ijkl]
   mov eax, 1
   int 80h
     _________________________________________________________________

   movb abcd, %al
   movw efgh, %bx
   movl ijkl, %ecx
   movl $1, %eax
   int $0x80
     _________________________________________________________________

   Skoki pod dany adres
   jmp/call far seg:off
   ljmp/lcall $seg, $off
     _________________________________________________________________

   Instrukcje powrotu
   retf n
   ret n
   lret $n
   ret $n
     _________________________________________________________________

   Rozszerzanie wartosci do wiekszych rozmiarow
   movsx ax, bl
   movzx eax, bl
   movsx eax, bx
   cbw
   cwde
   cwd
   cdq
     _________________________________________________________________

   movsbw %bl, %ax
   movzbl %bl, %eax
   movswl %bx, %eax
   cbtw
   cwtl
   cwtd
   cltd
     _________________________________________________________________

   Adresowanie zlozone
   seg : [baza + index*skala + liczba]
   [ebp-4]
   [cos+eax*2]
   gs : gdzies
   mov eax, [ecx]
   sub eax, [ebx+ecx*4-20h]
   call [eax*4 + zmienna]
     _________________________________________________________________

   %seg : liczba(%baza, %index, skala)
   -4(%ebp)
   cos(,%eax,2)
   %gs : gdzies
   movl (%ecx), %eax
   subl -0x20(%ebx,%ecx,0x4), %eax
   call *zmienna(,%eax,4)
     _________________________________________________________________

   Adresowanie pojedynczych zmiennych
   mov al, byte [costam]
   movb costam(,1), %al
   movb costam, %al
     _________________________________________________________________

   Pobieranie adresu zmiennych
   mov eax, offset costam      (TASM, MASM)
   mov eax, costam      (NASM, FASM)
   movl $costam, %eax
     _________________________________________________________________

   Przyrostki instrukcji FPU
   fld dword [a]
   fld qword [b]
   fld tbyte/tword [c]
   fild qword [d]
   fild dword [e]
   fild word [f]
     _________________________________________________________________

   flds a
   fldl b
   fldt c
   fildq d
   fildl e
   filds f
     _________________________________________________________________

   Polecam tez (po angielsku) porownanie skladni AT&T ze skladnia Intela
   oraz wstep do wstawek asemblerowych (w GCC) na stronach DJGPP,
   podrecznik GCC (sekcje: 5.34 i 5.35), oraz (w jezyku polskim) strone
   pana Danileckiego.

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