在RISC机器中考虑下面的指令序列:
null
有条件和无条件分支指令使用PC相对寻址模式,以字节为单位指定分支指令目标位置的偏移量。此外,偏移量始终与程序序列中下一条指令的地址有关。如果分支指令的目标是i,那么Offest的十进制值是。 (A) -16 (B) 18 (C) 1000 (D) 以上都不是 答复: (A) 说明: 第一条指令的地址是1000。因此
问题是分支指令的目标是“i”,在我们的示例中是1000。 所以,我们需要从地址1016(目前由PC指向)转到地址1000 1016 – 1000 = 16 因此,我们必须将偏移量指定为-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)是正确的。 这个问题的小测验
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END