acgdir.com
首页 > 动漫/二次元 > 动漫/二次元/资讯

萌新带你开车上p站(二)(9)

2022-11-11 来源:acgdir.com
可以看到,pc->r3->r0,也就是说r0的值为pc寄存器的值
这里有个知识点
ARM属于RISC,精简指令及,分三段流水,取指、译码、执行
当mov r3,pc执行时,此时的pc为当前指令地址 0x8,及0x8cdc 0x8
再看key2

萌新带你开车上p站(二)


add r6,pc,#1的意思是r6=pc 1,由key1的知识知,r6=0x8cfc 8 1,该值最低位为1
为什么要强调最低位
因为后面一条指令bx r6
bx指令用于切换处理器状态模式,最低位为1时,切换到Thumb指令执行,为0时,解释为ARM指令执行
所以执行该指令后就切换到了thumb模式下
而thumb模式下pc值为当前指令地址 4
所以执行r3,pc时,r3的值为0x8d04 4
再执行adds,r3,#4后r3的值Wie0x8d04 4 4
执行mov r0,r3后,r0的值也同r3
再看看key3

萌新带你开车上p站(二)


执行红框中的两条指令后,r0的值等于lr的值
lr即r14,存放是函数返回地址
具体的值在main中可以看到,为0x8d80
综上,得key值为108400

萌新带你开车上p站(二)


欲知后续,请留意每日文章推送!

猜你喜欢