16位字lc-3 BR和JMP指令

时间:2017-12-07 16:30:10

标签: lc3

当涉及16位字时,我有一个似乎无法弄清楚的问题。下面我附上了相应的代码和想象,给出了一些我要求帮助的描述。

 .orig x3000
 ld r1,n
 lea r5,data
 add r1,r1,#-1
loop:
 str r1,r5,0
 add r5,r5,r2
 add r1,r1,#-1
 brp loop
 trap x25
data: .blkw 2
n: .fill 10
 .end 

这是图片image

我得到了nzp代码,但我不知道如何计算pcoffset9所以如果有人可以帮助这个例子,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

计算PCOffset的公式如下

ADDRESS_OF_SYMBOL - (INSTRUCTION_ADDRESS + 1)

// display popup on click
map.on('click', function(evt) {
  var features = [];
  map.forEachFeatureAtPixel(evt.pixel, function(feature, layer) {
    features.push(feature);
  });
  for (var i = 0; i < features.length; i++) {
    console.dir(features[i]); //Displays object in browser console log
  }
});

所以LEA指令中的PCOffset如下

ADDRESS_HELLO_WORLD - (ADDRESS_LEA + 1)

x3003 - (x3000 + 1)= 2

执行LEA指令时,请记住PC已作为Fetch的一部分递增,因此PC将处于x3001。我们将2添加到x3003以获得标签HELLO_WORLD所在的地址。