asm in C++ Hello World Beispiel
-
ok, das hab ich schon gewusst, aber warum ?
-
drakon schrieb:
add esp, 4
Addiert esp und 4 und schreibt das ins Register eax..
Aha? Das waer mir neu.
Der linke Operand bei add, sub, usw. ist zugleich Quelle und Ziel.
-
Nobuo T schrieb:
drakon schrieb:
add esp, 4
Addiert esp und 4 und schreibt das ins Register eax..
Aha? Das waer mir neu.
Der linke Operand bei add, sub, usw. ist zugleich Quelle und Ziel.Und ich war kurzzeitig verwirrt
Btw.: Wenn du unter Win32 Assembler lernen willst, kannst du dir auch das MASM32-Paket angucken...
-
ProgChild schrieb:
Btw.: Wenn du unter Win32 Assembler lernen willst, kannst du dir auch das MASM32-Paket angucken...
Von MASM würde ich aufgrund seiner schlechten Lizenz (Verbot von OpenSource-Herstellung mit MASM) abraten. FASM eigenet sich für Win32 Programme ebenso gut.
Zum Thema: add esp,4 bewirkt, dass der Stapelspeicherzeiger wieder zurückgesetzt wird, der vorher durch den push Befehl um 4 verringert wurde.
-
ok thx. kann ich mir das stdcall sparen?
-
sry, meinte 'bei stdcall'
-
-
Hallo,
mal eine simple (?) Frage:
Programme in asm sehen ja so aus (pseudocode):push 4;
add ax, 4;Wenn da mit Registern gearbeitet wird, versteh ich das ja noch (es werden Werte ausm RAM ins Register geladen und dann wird auf der CPU gerechnet)
Aber wo genau landet die 4 bei push 4? Sprich: WO genau befindet sich der Stack? (RAM??)
-
stapler schrieb:
Aber wo genau landet die 4 bei push 4? Sprich: WO genau befindet sich der Stack?
Ja, im Arbeitsspeicher. Und wo genau, dass sagt dir das Stackregister, bzw. der Stackpointer.
-
ProgChild schrieb:
stapler schrieb:
Aber wo genau landet die 4 bei push 4? Sprich: WO genau befindet sich der Stack?
Ja, im Arbeitsspeicher. Und wo genau, dass sagt dir das Stackregister, bzw. der Stackpointer.
Aber auf der verlinkten Seite steht das:
( Der Stack ist in aller Regel komplett im Cache-Speicher des Prozessors, und die Arbeit mit Speicherzellen im Cache geht bedeutend schneller als der Zugriff auf den Hauptspeicher. )
Heißt das, der eigentlich Stack ist im RAM, wird aber vom Prozi gecacht?
-
stapler schrieb:
Aber auf der verlinkten Seite steht das:
( Der Stack ist in aller Regel komplett im Cache-Speicher des Prozessors, und die Arbeit mit Speicherzellen im Cache geht bedeutend schneller als der Zugriff auf den Hauptspeicher. )
Heißt das, der eigentlich Stack ist im RAM, wird aber vom Prozi gecacht?
Ja. Das ist der Sinn vom Prozessor-Cache. Der Arebeitsspeicher ist langsam, darum wird er im Cache zwischengespeichert und bei bedarf mit dem Arbeitsspeicher synchronisiert.