AT&T szintaxis

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt hozzászólók, és jelentősen eltérhet a 2013. december 17-én felülvizsgált verziótól ; az ellenőrzések 19 szerkesztést igényelnek .

Az AT&T szintaxis a processzor utasítás - mnemonika  írásának egyik formátuma .

Jellemzők

Az AT&T assembler ( gáz ) és az Intel assembler ( MASM , TASM , FASM , NASM ) közötti különbségek :

%eax, %ebx, %ecx, %edx

movb %al , %ah movw %ax , %bx movl %ebx , %eax
  • Az operandusok sorrendje először a forrás, majd a cél, és nem fordítva, mint az Intel szintaxisában . Például:
mov eax , ebx ;(Intel) movl %ebx , %eax #(AT&T)
  • A numerikus állandók a következő jelöléssel rendelkeznek:
20 óra ;(Intel) $0x20 #(AT&T, dollárjel az elején) mov ebx , 10 óra ;(Intel) movl $0x10 , %ebx #(AT&T)
  • ha egy adott címből egy regiszterbe szeretne értéket írni/olvasni, nincs dollárjel:
movl 0xffff , %eax
  • segment.offset (csak valós módban):
00:0 FFh ;(Intel) 00 .$0xFF #(AT&T)
  • regiszter eltolás:
es: [ bx + 0x1a ] ;(Intel) % es.0x1a ( %bx ) #(AT&T)

Az indexcímzési módszerek jelzései abban különböznek, hogy szögletes zárójelek helyett zárójeleket használnak:

sub eax ,[ ebx + ecx * 4 h-20h ] ;(Intel) subl -0 x20 ( %ebx , %ecx , 0x4 ), %eax #(AT&T) vonjuk ki az EAX értékből (ECX * 4) + EBX - 32

Egyes parancsok mnemonikája különbözik (például az AT&T-ben cdqhívják ).cltd

Az Assembler parancsok eltérőek (például konstansok deklarálása, helyfoglalás).

Lásd még