64位arm函数内跳转

ios开发 myhloli 12103次浏览 已收录 9个评论

64位arm内函数的跳转

向下跳转

前8位0101 0100与末尾位的0或1决定是BEQ还是BNE
中间的20位中,舍弃最高位,剩余24位的值乘2为当前地址向下跳转的距离
例如

向下跳转

5 4 0 0 0 0 C 0
0101 0100 0000 0000 0000 0000 1100 0000
=BEQ 0x18
54+末尾的0=BEQ
0x18=(0xC)*2
5 4 0 0 0 2 E 1
0101 0100 0000 0000 0000 0010 1110 0001
=BNE 0x5C
54+末尾的1=BNE
0x5C=(0x2E)*2

向上跳转

前8位0101 0100与末尾的0或1决定是BEQ或是BNE
中间的20位中,舍弃最高位,剩余的24位的补码的值乘2位当前地址向上跳转的距离
例如

向上跳转
5 4 F F F F 6 1
0101 0100 1111 1111 1111 1111 0110 0001
=BNE 0x14(向上)
111 1111 1111 1111 0110的补码是000 0000 0000 0000 1001+1=0x9+1=0xA
0x14=(0xA)*2

 

 

  萝莉社,版权所有丨如未注明,均为原创丨本网站采用BY-NC-SA协议进行授权,转载请注明转自:https://myhloli.com/asm-ben-and-beq-in-arm64.html
喜欢 (62)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(9)个小伙伴在吐槽
  1. [馋嘴]
    jad2016-02-29 07:10 回复
  2. [神马]
    嘿嘿2016-03-03 01:30 回复
  3. 来撸撸
    园子大魔王2016-03-03 15:13 回复
  4. 来瞧瞧你,话说多说好像挂了
    False_Flippy2016-03-17 10:32 回复
    • 多说经常这样,习惯就好
      myhloli2016-03-17 15:56 回复
  5. 多说的日常 话说我有个hloli.org
    asd2016-04-05 22:35 回复
  6. 不错。不错。不错。不错。不错。不错。
    御坂网络2016-08-05 16:35 回复
  7. 来撸撸
    记忆2016-08-21 22:45 回复
加载中……