-
-
[求助]调试symbian程序中arm汇编中的一个让我极度费解的问题!!
-
发表于:
2009-12-31 17:31
7888
-
[求助]调试symbian程序中arm汇编中的一个让我极度费解的问题!!
我用carbide 真机调试一个执行 一个带有chunk代码的程序,当执行到
008360 5A FF FF FA BLX sub_80d0
spsr中的t位= 1没错,但单步执行却跳转到了地址80b8!!
并且将 80d0地址中的4个代码字节数据由70 B5 00 F0 修改为F4 23 F1 E7
blx跳转是直接跳转到目标地址并置t=1的,80d0中的机器码也是正确的thumb指令如下:
000080D0 70 B5 PUSH {R4-R6,LR}
而80b8地址是一个arm指令的函数地址, 通过指令码判断
008360 5A FF FF FA BLX sub_80d0
应该是跳转到 80d0没错的,另外如果我将
008360 5A FF FF FA BLX sub_80d0
修改为:
008360 blx r12 ; r12 = 0x80d0 +1
执行后跳转到 80d0也是能正常继续运行的
貌似是由于008360 5A FF FF FA BLX sub_80d0这条指令导致异常??但是为什么会出现异常呢???实在是想不通,希望高人指点一下
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!