我正在做Question 7的练习题
我突出显示的地址不应该是x3307,而不是x3308吗?
我推理的方法是(第2条指令前的PC)=(第1条指令后的PC)。
第1条指令后的PC是x3301。因此,当第二条指令执行时,PC,x3301将增加6到x3307。
大家都同意吗?或者我错过了什么,R3应该实际存储x3308?
答案 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
。