打印
[ZLG-ARM]

请教汇编指令实验4

[复制链接]
1177|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
songbw|  楼主 | 2007-10-30 15:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
汇编指令实验4

THUMB_CODE
          LDR   R0 ,=N
          BL    SUM_N
          B     THUMB_CODE
SUM_N
          PUSH  {R1--R7,LR}
   ······    

这段代码中,执行完BL  SUM_N这句后,R14变为0x40000017,PC变为0x40000018,可是从BL的定义中,我怎么也计算不出结果是0x40000017。    PC也应该变为0x40000016才对。
下面PUSH  {R1--R7,LR}这句,这8个寄存器,是哪个先入栈?    
请指教。

相关帖子

沙发
computer00| | 2007-10-30 15:26 | 只看该作者

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

进栈操作时,编号小的寄存器放在地址小的内存单元中。

使用特权

评论回复
板凳
songbw|  楼主 | 2007-10-31 08:47 | 只看该作者

谢谢楼上的回答

谢谢楼上的回答,可是PC为什么要变成0x40000018呢?我分析执行BL  SUM_N这句,是占用了4个地址,换句话说是执行的arm指令。为什么不是执行thumb指令呢?前面后面都是在执行thumb指令的啊。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

86

帖子

1

粉丝