首页 > 代码库 > 相对跳转和绝对跳转的区别

相对跳转和绝对跳转的区别

假如: __main的链接地址是0x20000000。而因为它在前面,在启动的时候被拷贝到前面了,所以实际的地址是0x00000000.

    __main2的链接地址是0x20000010。实际地址是0x00000010.

 

B指令是相对跳转。

  也就是把pc加上两个链接地址之间的差值。

  如果使用 在 __main处使用  B _main2。则pc的值为0x00000010.

 

如果使用绝对跳转则使用 ldr pc, _main2.

    此时pc的值是0x20000010。可以直接跳转到内存中。

相对跳转和绝对跳转的区别