ARM学习之-----------机器码计算,此处为arm7

2020-04-28

  • 学习如何计算arm机器码

  •  
  • 机器码的计算方式

  1. 前4位: 31-28 需要查表ARM学习之-----------机器码计算,此处为arm7
  2. 27~25(101 固定的)
  3. 24(1或者0;如何具体判断:B:0 /BL:1)
  4. 偏移地址,计算公式:(目标地址-(指令地址+8))/4
    1. 加8原因:三级流水线
    2. 除4:因为指令定长,存储指令个数差,而不是地址差
  5. 然后将123步骤的地址 |  偏移地址
  6. 小段存放
  7. 指令如下ARM学习之-----------机器码计算,此处为arm7
    1. 根据前三步骤的处 0001 1010 0000 0000 0000 0000 0000 0000 = 0x1A00 0000
    2. 偏移 = ( 0xB4C85434 - ( 0xB4C853E0 +8 ) ) / 4 = 0x13 ;
    3. 所以机器码 =  0x13 | 0x1A00 0000 = 0x1A00 0013
    4. 小端存放 = 13 00 00 1A 
    5. 结果和IDA分析一致,表明计算正确