早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

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

题目

在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。