下面是我在VC++项目中插入的一个简单的asm代码。addr_curr_ebp是EBP指针的当前地址。它指向堆栈框架内的旧EBP值。这之后的4个字节是应用程序函数内部的返回地址。我从代码段中提取了一个字节。当我在代码中包含ProbStat 1和2时,应用程序总是崩溃。当我删除这些语句时,一切都很正常。你觉得这是什么?__asm{ pus
我正在学习汇编中的循环和跳跃,我试着做一个简单的循环。我希望printf命令被调用10次。我已经将counter变量设置为1,还将%edx设置为1,然后在每次迭代中递增该变量。但现在循环是无限的。我已经用gdb调试过了,%edx似乎在printf函数中被覆盖了。这就是为什么我push %edx到堆栈,并在printf调用之后返回pop它,但它不起作用。我错过了什么?# move v