我是汇编语言的新手,并试图理解一个简单的程序,它将添加两个数字并显示结果。
section .data
message1 db "value=%d%d",10,0
section .text
global main
extern printf
main:
mov eax, 55
mov ebx, 45
add eax,ebx
push eax
push ebx
push message1
call printf
add esp, 8
ret
现在输出是 45 100
添加 eax 后,ebx 指令的结果将存储在 eax 寄存器中。
但是现在接下来的几行会发生什么
push eax // push 100 on to stack
push ebx // push 45 on to stack
push message1 // push "value=%d" on to stack // I m bit doubtful here
我想知道的是执行“call printf”时会发生什么?
“添加esp,8”的目的是什么?