【问题标题】:Why does the Simics Registers window show 32 bit registers when the disassembly view shows code is running 64-bit?当反汇编视图显示代码运行 64 位时,为什么 Simics 寄存器窗口显示 32 位寄存器?
【发布时间】:2021-09-07 13:25:23
【问题描述】:

我在 2021.24 Simics 上,我刚刚使用“run-command-file targets\qsp-x86\firststeps.simics”启动了 sim,然后运行,然后停止。当我查看 CPU 寄存器窗口时,我看到下面的 32 位寄存器而不是 64 位。这是一个错误吗?执行 64 位代码时,寄存器视图不应该显示 64 位寄存器吗?或者至少有一个 UI 选项来强制这种情况?

【问题讨论】:

    标签: simics


    【解决方案1】:

    请参阅例如https://cs.brown.edu/courses/cs033/docs/guides/x64_cheatsheet.pdf,它解释了您看到的视图。引用:“此外,其中一些的低字节 寄存器可以作为 32 位、16 位或 8 位寄存器独立访问。寄存器名称是 如下: ..." 您会看到 e.. 寄存器确实是 32 位寄存器。虽然它们是较大的 r.. 寄存器的一部分,但当用于 64 位架构。

    【讨论】:

    • 我知道 E 形式是 64 位 R 形式的 32 位版本。我要问的是为什么 Registers 窗口在明确执行 64 位代码时显示 32 位形式,以及是否有任何方法可以更改它以显示 64 位形式(我还没有找到这样的一种方式)
    • 老实说,我无法回答这个问题。我可能是因为在相当长的一段时间内我们没有对旧的 Winsome UI 做太多事情。
    • 好的,至少我认为至少值得一张错误票来跟踪寄存器窗口未显示完整寄存器状态的事实。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 1970-01-01
    • 2014-12-17
    • 2020-10-29
    • 2011-10-26
    • 1970-01-01
    相关资源
    最近更新 更多