【问题标题】:68k register addresses68k寄存器地址
【发布时间】:2011-09-12 01:30:11
【问题描述】:

这个问题是在乞求一堆“你为什么要这样做?”回复。

我无法在 68k Programmer's Reference Manual 中找到此信息,但这可能是因为我不确定要搜索什么措辞。

这是 68k 的ADD 操作码的指令格式。

位 0-2 和 9-11 指定寄存器。 68k 寄存器的二进制表示是什么?它们是“地址”吗?

是的,我知道我可以编写一个 68k 的汇编程序并对其进行调试以查找此信息。我正在寻找参考。谢谢!

【问题讨论】:

  • 寄存器没有地址。如果你不理解这一点,你就不会理解机器架构。这些位只是说明要使用 CPU 中的哪个寄存器。它们被我的微码引擎解码。
  • 我知道它们不是内存地址。这很明显。它们仍然可能是/称为/地址。此外,我并没有声称了解机器架构。我正尝试着学习;请原谅我问了一个问题。
  • @mwcz 我们可以称它们为“zoinks”,但这并不能使它们成为 zoinks。术语很重要,在编写和理解机器代码程序的情况下,非常重要。
  • 这正是我问“他们是'地址'吗?”这个问题的原因。据我所知,他们可能有“注册地址”。不要抨击某人要求澄清术语,然后告诉他们知道术语很重要。
  • 只是把我自己定位在你们两个之间:在 RISC 架构中(68000 可以看作是其先驱)有“寄存器文件”的概念,在这方面,三个寄存器位可以看作是寄存器文件的索引。但是,“文件”驻留在 CPU 本身内部,因此在我看来,这只会使“文件”一词的含义复杂化,从而使汇编编程术语变得不必要地模棱两可。

标签: assembly machine-code instruction-set 68000


【解决方案1】:

见第二节。 2.1、“指令格式”:

指令用操作码指定要执行的功能并定义每个操作数的位置。指令通过寄存器规范指定操作数位置,指令的寄存器字段保存寄存器编号;通过有效地址,指令的有效地址字段包含寻址方式信息;或者通过隐含的引用,指令的定义意味着使用特定的寄存器。 (强调)

【讨论】:

  • 谢谢,有帮助。我只是想通了,它是如此明显,难怪它没有在文档中列出。 :)
  • @mwcz 对于我们这些普通人来说,这个问题是寄存器编号是八个 D0-D7 或 A0-D7 寄存器的 3 位二进制表示吗?
  • @Caltor 是的。当我发布这个问题时,我对如何通过 3 位字段引用所有 16 个寄存器(A 和 D 寄存器)感到困惑。现在感觉这是一个愚蠢的问题,因为很明显(回想起来)数字 (0-7) 包含在寄存器字段中,并且寻址模式确定该数字是指 A 寄存器还是 D 寄存器。跨度>
  • @mwcz 啊寻址方式决定是A还是D寄存器;我错过了那部分。我不认为有这样一个愚蠢的问题。无论如何,我发现它对我理解 68k 很有用。谢谢
【解决方案2】:

这些可能是指您链接的手册第 1-2 页图 1-1 中列出的 An 和 Dn 寄存器。

【讨论】:

    【解决方案3】:

    3 位指定地址寄存器编号,从 0(位:0-0-0)到 7(位:1-1-1)。但通常你可以让汇编器担心这些东西。 我希望这有帮助, 戴夫

    【讨论】:

    • 谢谢。我当时正在写一个模拟器,所以依赖汇编器不是一个选择。
    猜你喜欢
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 2010-11-18
    • 2020-08-15
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    相关资源
    最近更新 更多