Binary 01111100在本LC-3代码中指的是什么?

Binary 01111100在本LC-3代码中指的是什么?,binary,lc3,machine-language,Binary,Lc3,Machine Language,好的,我在看LC-3中的一个示例程序,其中一行代码如下: 0010 0 10 011111100 ; R2 <- M[x3100] 0010101111100;R2立即数,在某些文本中称为PCOffset9,是pc相对偏移量。因此,更完整的程序可能是这样的: .ORIG x3000 3000 ... 3001 ... 3002 ... 3003 LD R2, #252 ... ... 3100 .END 当执行此指令时,PC持有

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

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

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

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

      .END

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

感谢您的解释!我想我的问题是我没有意识到十六进制数的加法和减法不同于常规整数虽然计算机使用二进制存储数字和加法,我们经常使用十六进制来表示二进制,但我认为加法和减法的工作原理是一样的,不管基数是多少。从某种意义上说,寄存器只保存没有数字基的数字:数字基用于以字符串形式(字符序列)共享数字,例如I/O、打印、输入等。。如果你对此有任何疑问,请提问。这里,x3004+xFC=#12292+#252=#12544=x3100。