在32位处理器上,假设栈顶指针寄存器的当前值为0x00FFFFE8,那么在执行完指令“push eax”(eax为32位寄存器)后,栈指针的当前值应为(43)。
【正确答案】 A
【答案解析】解析:栈是一种先进后出的数据结构,栈有一个存储区和一个栈顶指针。栈顶指针指向堆栈中第1个可用的数据项(被称为栈顶)。用户可以在栈顶上方向栈中加入数据,这个操作被称为压栈(push)。压栈以后,栈顶自动变成新加入数据项的位置,栈顶指针也随之修改。用户也可以从堆栈中取走栈顶,称为弹出栈(pop)。弹出栈后,栈顶下一的个了元素变成栈顶,栈顶指针随之修改。 本试题中,由于eax是一个32位寄存器,共值将占用4字节存储空间,因此执行“push eax”指令后,栈顶指针寄存器的当前值将修改为(0x00FFFFE8-4)=0x00FFFFE4。