R3不应该持有地址x3307吗?

时间:2015-05-12 00:39:49

标签: assembly cpu-registers computer-architecture machine-code lc3

我正在做Question 7的练习题 enter image description here

我突出显示的地址不应该是x3307,而不是x3308吗?

我推理的方法是(第2条指令前的PC)=(第1条指令后的PC)。

第1条指令后的PC是x3301。因此,当第二条指令执行时,PC,x3301将增加6到x3307。

大家都同意吗?或者我错过了什么,R3应该实际存储x3308?

2 个答案:

答案 0 :(得分:2)

PC相对偏移应用于已经增加的PC之上,即"之后的#34; PC的值,换句话说,是下一条指令的地址。

答案 1 :(得分:0)

来自Patt的附录A& Patel,符号公约(表A.1)说明了PC:

  

计划柜台; 16位寄存器,包含要获取的下一条指令的存储器地址。例如,在地址A执行指令期间,PC包含地址A + 1,表示下一条指令包含在A + 1中。

LEA操作码的规范说:

  

通过符号扩展位[8:0]到16位来计算地址   将此值添加到递增 PC。

因此,当第二条指令被执行时,增加的PC'是0x3302。添加6会产生0x3308