Syntaxe AT&T

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 17. prosince 2013; kontroly vyžadují 19 úprav .

Syntaxe AT&T  je jedním z formátů pro psaní mnemotechnických pomůcek instrukcí procesoru .

Funkce

Rozdíly mezi assemblerem AT&T ( plyn ) a assemblerem Intel ( MASM , TASM , FASM , NASM ) :

%eax, %ebx, %ecx, %edx

movb %al , %ah movw %ax , %bx movl %ebx , %eax
  • Pořadí operandů je nejprve zdroj, pak cíl a ne naopak, jako v syntaxi Intel . Například:
mov eax , ebx ;(Intel) movl %ebx , %eax #(AT&T)
  • číselné konstanty mají následující zápis:
20 h ;(Intel) $0x20 #(AT&T, znak dolaru na začátku) mov ebx , 10 h ;(Intel) movl $0x10 , %ebx #(AT&T)
  • pro zápis / čtení hodnoty z konkrétní adresy do registru neexistuje znak dolaru:
movl 0xffff , %eax
  • segment.offset (pouze v reálném režimu):
00:0 FFh ;(Intel) 00 .$0xFF #(AT&T)
  • offset registru:
es: [ bx + 0x1a ] ;(Intel) % es.0x1a ( %bx ) #(AT&T)

Indikace metod indexového adresování se liší v tom, že místo hranatých závorek se používají závorky:

sub eax ,[ ebx + ecx * 4 h-20 h ] ; (Intel) subl -0 x20 ( %ebx , %ecx , 0x4 ), %eax #(AT&T) odečíst od hodnoty EAX (ECX * 4) + EBX - 32

Mnemotechnika některých příkazů se liší (například cdqse nazývá cltdv AT&T).

Příkazy assembleru se liší (např. deklarace konstant, rezervace místa).

Viz také