我的程序陷入困境,有人能看出原因吗?
基本上我想用一个用户输入来确定循环的次数,然后用户输入他们想要的值(正数或负数)。然后将它们与0进行比较。如果数字为正,则将其添加到正堆栈地址(如果为负数),然后将其置于负堆栈地址并打印结果..
mov ecx, loopvalue
l1:
push ecx
lea eax, getvalue
push eax
call printf
add esp, 4
lea eax, uservalue
push eax
lea eax,format
push eax
call scanf_s
add esp, 4
pop ecx
loop l1
答案 0 :(得分:0)
你在堆栈上提供了scanf_s
2个参数,但是在调用之后你不会释放堆栈上的两个参数(你只添加了4个)。你应该添加8来纠正这个:
lea eax, uservalue
push eax
lea eax,format
push eax
call scanf_s
add esp, 8