我有一个程序,我正在尝试使用printf
返回的堆栈和打印值,但我一直得到错误的数字。提前抱歉,但我是装配新手。
我正在使用的这本书并没有很好地解释它。这是代码:
.386
.model flat,stdcall
.stack 100h
printf proto c arg1:ptr byte, printlist:vararg
.data
fmtmsg1 db "%d ",0
num1 dw 6
num2 dw 7
.code
addvalues proc
push ebp
mov ebp,esp
mov esi,[ebp + 12] ; number 6
mov ecx,[ebp + 8] ; number 7
mov ebx,dword ptr[esi]
add ebx,dword ptr[ecx]
invoke printf,addr fmtmsg1,ebx; print value
pop ebp
ret 8
addvalues endp
public main
main proc
push offset num1
push offset num2
call addvalues
ret
main endp
end main