繁体   English   中英

011111100 在此 LC-3 代码中指的是什么?

[英]What does 011111100 refer to in this LC-3 Code?

好的,我正在查看 LC-3 中的示例程序,其中一行代码如下:

0010 0 10 011111100 ; R2 <- M[x3100]

所以我知道代码正在获取地址 x3100 的内容并将它们存储到 R2 中,但是我对它们如何获取二进制代码的偏移部分感到困惑。 当我以二进制查找 01111110 时,它是 252,十六进制数是 FC。 那么这与 x3100 有什么关系呢?

立即数,在某些文本中称为PCOffset9 ,是相对于 pc 的偏移量。 因此,更完整的程序可能是这样的:

      .ORIG x3000
3000  ...
3001  ...
3002  ...
3003  LD R2, #252
      ...
      ...
3100

      .END

当该指令执行时,PC 保存 x3003 的值,用于从 memory 中获取指令LD R2, #252 在该指令执行期间,首先 PC 用于获取指令,然后递增,接下来,“有效地址”计算为ea = PC + PCOffset9 这里 PC 是 x3004(是 x3003 然后 +1),立即数是 xFC,所以它们的和是 x3100。 如果在另一条指令中使用(即在 x3003 以外的位置),则相同的偏移量 #252 将引用不同的 memory 位置。 请注意, PCOffset9是一个有符号的 9 位字段:在上述添加到 PC 之前,它被符号扩展为 16 位。 签名后可以向前和向后移动,因此范围是-256到+255。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM