Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názor k článku
Programujeme v jazyce Assembler v Linuxu: Trochu praxe

Michal Ludvig
Michal Ludvig (neregistrovaný)
8. 7. 2004 18:58

Re: syntax

celé vlákno

Kod toho prispevku byl napsan v AT&T syntaxi, ktera je na Unixech standard (na rozdil od syntaxe Intel pouzivane v NASM, ktera je importovana ze sveta DOSu).

Rozdilu je celkem hodne - nejvyraznejsi je zmena poradi operandu, pouzivani postfixu pro urceni velikosti operandu, pouzivani ruznych prefixu pred ruznymi typy operandu, adresovani pomoci offsetu, atd.

Napr. ulozeni hodnoty "1" do registru "EAX" je v
Inteli syntaxi:
mov eax, 1

V AT&T syntaxi:
movl $1, %eax

Postfixy jsou ruzne, napr:
8 bitu: movb $1,%al
16 bitu: movw $2,%ax
32 bitu: movl $3,%eax
64 bitu: movq $4,%rax

pokud je z operandu zrejme, jaka ma byt velikost (napr. je to registr), je mozne postfix vynechat.

Uz jste si asi vsimnul, ze konstanty maji prefix '$' zatimco registry '%'.

Rozdilu je samozrejme vic, ale tyhle jsou nejvic videt :-)