没有新消息
0 条评论
暂无评论,快来写下您的评论
问题来自于
福大大
北京/西昌学院/研发工程师
#福大大架构师每日一题#57.在 32 位处理器上,假设栈顶指针寄存器的当前值为 0x00FFFFE8,那么在执行完指令“p
57.在 32 位处理器上,假设栈顶指针寄存器的当前值为 0x00FFFFE8,那么在执行完指令“push eax”(eax 为 32 位寄存器)后,栈指针的当前值应为 (57) 。 A.0x00FFFFE4 B.0x00FFFFE6 C.0x00FFFFEA D.0x00FFFFEC
1854
阅读
4
回答
#福大大架构师每日一题#57.在 32 位处理器上,假设栈顶指针寄存器的当前值为 0x00FFFFE8,那么在执行完指令“p
在32位处理器上,栈的单位是4字节(32位)。 假设栈顶指针寄存器的初始值为0x00FFFFE8。 执行"push eax"指令时,会将eax寄存器的值推入栈中,并更新栈顶指针寄存器。更新后的栈顶指针值应该等于原来的栈顶指针值减去4(因为每推入一个32位的值,栈深度就减少4字节)。 原来的栈顶指针是0x00FFFFE8,减去4后,得到0x00FFFFE4。 所以,执行"push eax"后,栈顶指针的当前值应为0x00FFFFE4。 答案是:A.0x00FFFFE4。