PUSH op
: Einen Wert oben auf den Stack legenPOP register
: Den obersten Wert vom Stack nehmen und in ein Register legenPUSH
und POP
um Register zu sichernrbp
, rbx
, and r12–r15
verwenden, solltet ihr diese vorher sichernfunc:
push rbx
push r12
; Irgendwas mit rbx und r12 machen
pop r12
pop rbx
ret
CALL
und JMP
call
und jmp
das gleiche
jmp
muss call
jedoch speichern, wo es gerade ist, um dahin wieder zurückspringen zu können
call
diese Information? Auf dem Stack.CALL
und RET
genau?CALL label => PUSH rip ; rip = instruction pointer
; = Adresse des nächsten Befehls
JMP label
RET => POP rip ; Hole Adresse des nächsten Befehls
; vom Stack