拿C语言写个除法看,会发现编译器的行为:
尽量简单处理,例如移位可以解决的,当作移位处理。
不能简单处理的,除数和被除数放到r0, r1, 然后调用一个函数。
0x00000AE4 68A9 LDR r1,[r5,#0x08]
0x00000AE6 68A0 LDR r0,[r4,#0x08]
0x00000AE8 F000F842 BL.W __aeabi_uidivmod (0x00000B70)
然后,楼主的问题就简单了。
汇编里,导入下__aeabi_uidivmod, 设定好r0, r1, BL到这个函数就完事了。
|