Der Stack ist ein Speicherbereich, der von oben nach unten wächst. push legt einen Wert oben ab (rsp sinkt um 8), pop holt ihn wieder. Das ist auch der Weg, Register kurz zu sichern. Mit call funktion rufst du ein Unterprogramm auf: Die Rücksprungadresse landet auf dem Stack, ret springt dorthin zurück.
Unter Linux (System V) übergibst du die ersten Argumente in rdi, rsi, rdx, rcx, r8, r9; das Ergebnis kommt in rax zurück.
mov rdi, 6
mov rsi, 7
call multipliziere
; rax = 42
; ...
multipliziere:
mov rax, rdi
imul rax, rsi
retMerke
pushundpopsichern und holen Wertecallundretrufen Funktionen auf und kehren zurück- Argumente in
rdi,rsi,rdx; Ergebnis inrax
Aufgabe
Schreibe eine Funktion, die zwei Zahlen addiert.