嗨我正在阅读弗吉尼亚大学的x86指南,并指出推送和弹出堆栈要么删除或添加一个4字节的数据元素到堆栈.
为什么设置为4个字节?这可以改变,你可以通过推动较小的数据元素来节省堆栈中的内存吗?
如果有人希望查看该指南,可以在此处找到该指南:http: //www.cs.virginia.edu/~evans/cs216/guides/x86.html
我对x86汇编中的32位寄存器的子部分有疑问:是否将寄存器(使用时)的下部子部分视作相应的32位寄存器的一部分?
ror cl,2 ror cl,2 推ecx 流行曲
以上面的代码部分为例-由于CL是ECX寄存器的子部分,当我将寄存器的内容压入堆栈时,子部分中的内容也被CL压入堆栈了吗?还是分开对待?
并假设如果我然后将堆栈弹出到EAX寄存器中,那么进入CL寄存器之前,寄存器中的内容是什么EAX?