簡體   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