当涉及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
我得到了nzp代码,但我不知道如何计算pcoffset9所以如果有人可以帮助这个例子,我将不胜感激。
答案 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所在的地址。