为何Simics寄存器窗口显示32位寄存器而反汇编视图显示运行64位代码?
Simics 2021.24寄存器视图显示疑问解答
- 该现象不是Bug,属于正常运行逻辑
你执行的run-command-file targets\qsp-x86\firststeps.simics脚本启动的x86仿真平台,CPU上电后默认先运行在32位保护模式,尚未完成64位长模式的切换,因此寄存器窗口默认只展示32位寄存器(EAX、ECX、EIP等)。
- 运行64位代码时寄存器视图会自动切换为64位显示
当CPU完成模式切换进入IA-32e(x86-64)长模式运行64位代码后,Simics的寄存器窗口会自动刷新,展示RAX、RBX、RIP、RSP等全64位寄存器,不需要手动触发切换。你可以通过命令行输入pstatus指令查看当前CPU的运行模式,确认是否已进入64位长模式。 - 2021.24版本无强制切换寄存器位宽的UI选项
该版本Simics的图形界面没有提供强制切换寄存器视图位宽的设置项,寄存器的显示逻辑完全绑定CPU当前的实际运行模式。如果你需要在32位模式下查看64位寄存器的数值,可以在命令行执行print $rax(替换为对应寄存器名)直接读取。
内容的提问来源于stack exchange,提问作者Jimmy Wu
相关产品推荐
相关产品推荐

