在32位处理器上,假设栈顶指针寄存器的当前值为0x00FFFFE8,那么在执行完指令“push eax”(eax为32位寄存器)后,栈指针的当前值应为(43)。

admin2013-02-02  4

问题 在32位处理器上,假设栈顶指针寄存器的当前值为0x00FFFFE8,那么在执行完指令“push eax”(eax为32位寄存器)后,栈指针的当前值应为(43)。

选项 A、0x00FFFFE4
B、0x00FFFFE6
C、0x00FFFFEA
D、0x00FFFFEC

答案A

解析 栈是一种先进后出的数据结构,栈有一个存储区和一个栈顶指针。栈顶指针指向堆栈中第1个可用的数据项(被称为栈顶)。用户可以在栈顶上方向栈中加入数据,这个操作被称为压栈(push)。压栈以后,栈顶自动变成新加入数据项的位置,栈顶指针也随之修改。用户也可以从堆栈中取走栈顶,称为弹出栈(pop)。弹出栈后,栈顶下一的个了元素变成栈顶,栈顶指针随之修改。
   本试题中,由于eax是一个32位寄存器,共值将占用4字节存储空间,因此执行“push eax”指令后,栈顶指针寄存器的当前值将修改为(0x00FFFFE8-4)=0x00FFFFE4。
转载请注明原文地址:https://jikaoti.com/ti/QHL7FFFM
0

相关试题推荐
最新回复(0)