考虑一下RISC机器中的以下指令序列:
有条件和无条件分支指令使用PC相对寻址模式,其偏移量以字节为单位指定到分支指令的目标位置。此外,偏移量始终与程序序列中下一条指令的地址有关。如果分支指令的目标是i,则Offest的十进制值为__________。
(A) -16
(B) 18
(C) 1000
(D)以上都不是答案: (A)
说明:我们的第一条指令的地址为1000。因此,
问题说分支指令的目标是“ i”,在我们的示例中为“ i”。
因此,我们需要从地址1016转到地址1000(当前由PC指向)
1016 – 1000 = 16
因此,我们必须将Offset指定为-16,这意味着应该从下一条地址指令(1000)中减去16。
替代方式–
Instruction Bytes
i 0-3
i+1 4-6
i+2 7-11
i+3 12-12
i+3 13-15
Next Instruction 16
Instruction Bytes
i 0-3
i+1 4-6
i+2 7-11
i+3 12-12
i+3 13-15
Next Instruction 16
根据PC相对模式,
有效PC地址=下一条指令地址+偏移量
0(i)= 16 +偏移
0-16 =偏移
偏移= -16
选项(A)是正确的。
这个问题的测验