Můžu mít otázku - TinyCC assembler zvládne také Intel syntaxi?
ad. "moderní verze GNU Assembleru podporují jak původní AT&T syntaxi, tak i (podle mnoha programátorů čitelnější) syntaxi používanou společností Intel." - DÍKY ZA TUHLE POZNÁMKU!. Tohle jsem netušil, a během těch let mě ani nenapadlo, že by se to mohlo změnit, tak jsem se po tom nikdy nepídil a automaticky instaloval nasm/yasm.
A jak už je v článku zmíněno, Intel je pro lidi, AT&T pro stroje ;-)
Možná si s tím autoři nelámali hlavu a chtěli něco, co bude jasné a nebude mít jmenné konflikty - v tomto je GAS se svými % prefixy spolehlivější. Já si na to svého času zvyknul a až na to přehození destination a source to tak špatné nebylo a třeba velikostní suffixy občas zachytily chybu.
Jinak souhlas, že ty možnosti jsou dost omezené, ale to je dost možná dáno tím, že v DOS se v assembleru skutečně programovalo, zatímco GAS byl už tehdy prakticky jen backend pro vyšší kompilátory.
Díky Pavle za připomenutí. V asm jsem "tvořil" cca 30 let zpět. To byl tasm a reálný mód CPU. To bývala fakt paráda.
Rychlejší i kratší je xor. Za prvé, mov má za dlouhou konstantu na konci, což ovlivňuje délku kódu a tím pádem i rychlost. Za druhé, xor může být jenom přejmenování registru na nulu, takže nevyžaduje execution unit. To tedy až na moderních procesorech, ale historicky xor nikdy nebyl pomalejší: https://www2.math.uni-wuppertal.de/~fpf/Uebungen/GdR-SS02/opcode_i.html
Jinak stačí psát jenom operace do %eX, zbytek %rX se automaticky resetuje na nulu kvůli eliminaci závislostí.