4.43
没有正确执行pushl %esp,pushl %esp是将esp当前的内容入栈。 如果REG是esp,那么代码是先减去了esp,然后将减了4以后的REG移入了esp。
修改:(我只能想到利用其它的寄存器)
movl REG, %eax
subl $4, %esp
movl %eax, (%esp)
4.44
也没有正确执行popl %esp,因为popl %esp是将当前栈顶的值放入esp。
如果REG是esp,那么最后得到esp是栈顶值减4之后的值。
movl (%esp), %eax
addl $4, %esp
movl %eax, REG
原文:http://www.cnblogs.com/java-stx/p/4934715.html