本帖最后由 reasonly 于 2010-9-8 17:39 编辑
stmia r0!,{r1,r2} //r0值为0x4027e4c,r1和r2值都为0
bne addr_right //这一句为伪代码
assert //这一句为伪代码
执行第一句前r0值为0x4027e4c,可是执行完第一句以后就assert了。
理论上,执行第一句后r0的值应该加8,即0x4027E54,应该不会影响z标志位,那么为什么没有跳转到addr_right处继续执行呢?
(补充一点,当前工作在thumb状态,而且加入了-zo编译选项) |