[ZLG-ARM] 请教汇编指令实验4

[复制链接]
1929|2
 楼主| songbw 发表于 2007-10-30 15:03 | 显示全部楼层 |阅读模式
汇编指令实验4<br /><br />THUMB_CODE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;R0&nbsp;,=N<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BL&nbsp;&nbsp;&nbsp;&nbsp;SUM_N<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;THUMB_CODE<br />SUM_N<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PUSH&nbsp;&nbsp;{R1--R7,LR}<br />&nbsp;&nbsp;&nbsp;······&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />这段代码中,执行完BL&nbsp;&nbsp;SUM_N这句后,R14变为0x40000017,PC变为0x40000018,可是从BL的定义中,我怎么也计算不出结果是0x40000017。&nbsp;&nbsp;&nbsp;&nbsp;PC也应该变为0x40000016才对。<br />下面PUSH&nbsp;&nbsp;{R1--R7,LR}这句,这8个寄存器,是哪个先入栈?&nbsp;&nbsp;&nbsp;&nbsp;<br />请指教。
computer00 发表于 2007-10-30 15:26 | 显示全部楼层

地址最后一位为1,是跳转到THUMB模式的指示吧

进栈操作时,编号小的寄存器放在地址小的内存单元中。
 楼主| songbw 发表于 2007-10-31 08:47 | 显示全部楼层

谢谢楼上的回答

谢谢楼上的回答,可是PC为什么要变成0x40000018呢?我分析执行BL&nbsp;&nbsp;SUM_N这句,是占用了4个地址,换句话说是执行的arm指令。为什么不是执行thumb指令呢?前面后面都是在执行thumb指令的啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

86

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部