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

admin2010-01-23  15

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

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

答案A

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

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