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

Smazaný obsah Přidaný obsah
Fabcde (diskusia | príspevky)
d odkazy
Fabcde (diskusia | príspevky)
dBez shrnutí editace
Riadok 20:
 
=== Hello, World! ===
Náš prvý program vypíše v príkazovom riadku krátky text a skončí (verzia pre NASM)<ref>https://stackoverflow.com/questions/35965407/trying-to-read-console-input-from-x64-assembler-using-pure-win64-apis-no-c-runt</ref>:<syntaxhighlight lang="nasm" line="1">
; HelloWorld.asm
 
Riadok 70:
lpNumberOfBytesWritten: resd 1
 
</syntaxhighlight>Program síce nealokuje miesto v zásobníku, ako to vyžaduje volacia konvencia Microsoft x64 (podrobnosti ďalej), napriek tomu sa dal zostaviť aj spustiť.
 
Kompilácia:<syntaxhighlight>
Riadok 167:
</syntaxhighlight>Kompilácia:<syntaxhighlight>
G:\>as HelloWorld.s -o HelloWorld.o
</syntaxhighlight>Linkovanie:<syntaxhighlight>
G:\>ld -e main -s HelloWorld.o -o HelloWorld.exe c:\windows\system32\kernel32.dll
</syntaxhighlight>Aleboalebo:<syntaxhighlight>
G:\>gcc -m64 -nostartfiles -Wl,-s,-emain -o HelloWorld.exe HelloWorld.s c:\windows\system32\kernel32.dll
</syntaxhighlight>(golink nerozumel objektovým súborom kompilátora as)Výsledok:<syntaxhighlight>
G:\>dir
15.07.2017 15:32 2 193 HelloWorld.s
16.07.2017 12:48 614 HelloWorld.o
16.07.2017 12:48 1 536 HelloWorld.exe
 
G:\>HelloWorld.exe
Hello, World!
</syntaxhighlight>
 
== Referencie ==
<references />
 
== Ďalšie zdroje ==
* http://cs.lmu.edu/~ray/notes/x86assembly/
* http://frdsa.fri.uniza.sk/~janosik/Kniha/ProgJSA.html
 
* https://www.pcrevue.sk/a/ASSEMBLER-pod-Windows--Uvod--1--cast
http://frdsa.fri.uniza.sk/~janosik/Kniha/ProgJSA.html
 
https://www.pcrevue.sk/a/ASSEMBLER-pod-Windows--Uvod--1--cast
[[Kategória:Počítače]]