Programovanie v assembleri vo Windows x64 (x86-64): Rozdiel medzi revíziami
Smazaný obsah Přidaný obsah
Pridanie programu IntToHex (gas) |
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="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="
# HelloWorld.s
Řádek 487 ⟶ 486:
=== IntToHex ===
'''Výpis 4b''' IntToHex.s:<syntaxhighlight lang="
# IntToHex.s
|