了解汇编基本代码

时间:2018-07-01 02:15:14

标签: assembly pdp-11

pointr: .word pointr
mov #pointr,r0
mov pointr,r1

有人可以解释值r0和r1之间的区别吗?

1 个答案:

答案 0 :(得分:1)

TL; DR-r0和r1将保持相同的值,只是因为第一行中的初始化

让我们逐条说明:

pointr: .word pointr

这意味着“在地址X中定义一个名为'pointer'的标签,并将标签的值(在本例中为X)放入该地址”。因此,在地址X中,有一个单词包含值X。

mov #pointr,r0

这意味着“将标签'pointer'的值(在本例中为地址X)移动到r0”。因此r0将保留值X,因为“ pointer”是该地址的标签。

mov pointr,r1

这意味着“将位于标签'pointer'的地址中的值(在本例中也为X)移动到r1“。因此,由于代码第一行的“ .word pointr”部分,r1将保留值X。

为了澄清,如果我们要替换第一行代码来获取:

pointr: .word pointr+2 mov #pointr,r0 mov pointr,r1

r0的值将保持不变(与原始代码相比),但是r1的值将保持不变。