Programovanie v assembleri vo Windows x64 (x86-64): Rozdiel medzi revíziami

Smazaný obsah Přidaný obsah
Fabcde (diskusia | príspevky)
Pridanie programu IntToHex (gas)
Fabcde (diskusia | príspevky)
d zalamovanie
Riadok 127:
</syntaxhighlight>vynuluje obsah registra ECX a ukončí program. Jediným argumentom funkcie ExitProcess (uložený v registri ECX) je exit code programu.
 
'''Výpis 1b''' HelloWorld.s (Verzia pre GAS):<syntaxhighlight lang="gasas" line="1">
 
'''Výpis 1b''' HelloWorld.s (Verzia pre GAS):<syntaxhighlight lang="gas" line="1">
# HelloWorld.s
 
Řádek 347 ⟶ 346:
</syntaxhighlight>Je to pokus o optimalizáciu kódu, kedže inštrukcia xor ecx,ecx tiež vynuluje obsah registra ECX, ale po preložení zaberá menej bajtov. Optimalizácia kódu je však dnes kvôli prúdovému spracovaniu inštrukcií ([[w:cs:Pipelining|pipelining]]), hypertredingu, cache pamäti, atď mimoriadne zložitá a vyžaduje hlboké znalosti. Spravidla dobrý kompilátor/optimalizátor jazyka C dokáže vytvoriť rýchlejší kód než hoci aj kratší ale neoptimalizovaný kód v jazyku symbolických adries.<ref>https://www.zive.cz/clanky/vyznejte-se-v-procesoru--velky-prehled-technologii/historie-procesoru-cache-a-skalarni-procesory/sc-3-a-147124-ch-66129/default.aspx#articleStart</ref><ref>http://frdsa.fri.uniza.sk/~janosik/Kniha/Prudove_sprac.html</ref><ref>https://forum.root.cz/index.php?topic=2388.0</ref>
 
'''Výpis 2b''' HelloWorld.s (Verzia pre GAS):<syntaxhighlight lang="gasas" line="1">
# HelloWorld.s
 
Řádek 487 ⟶ 486:
 
=== IntToHex ===
'''Výpis 4b''' IntToHex.s:<syntaxhighlight lang="gasas" line="1">
# IntToHex.s