加入收藏 设为首页 帮助中心
 
论坛首页
用户登录 | 用户注册 | 最新悬赏 | 最新贴子 | 会员中心 | 贴子搜索 | 网站地图 | 帮助中心 | 联系我们
站内搜索:
现在位置 > 维库电子开发网论坛 > 嵌入式系统/ARM技术 > 请教汇编指令实验4
帖子主题: 请教汇编指令实验4
你还没有登录,无法发表回复,请首先 登录.. [注 册]
积分:699 frence20086063
发表于:2007-11-15 18:01:00 楼主
级别:五星
积分:699分
注册:2006年08月19日
请教汇编指令实验4
请教汇编指令实验4
汇编指令实验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个寄存器,是哪个先入栈?    
请指教。

 
积分:433 croy5539
发表于:2007-11-18 13:01:00 1 楼
级别:四星
积分:433分
注册:2006年08月19日
2楼:地址最后一位为1,是跳转到THUMB模式的指示吧
2楼:地址最后一位为1,是跳转到THUMB模式的指示吧
进栈操作时,编号小的寄存器放在地址小的内存单元中。

签名:

***********************声明*********************
本人所有发言均为个人观点。由此帖带来的后果,    
本人一般不予负责。在您相信本帖之前,请慎重考虑!
                                     
                                      Computer00 
快来加入我的USB专区吧!!!


访问电脑圈圈的博客
 
积分:699 yikexi6063
发表于:2007-11-14 17:01:00 2 楼
级别:五星
积分:699分
注册:2006年08月19日
3楼:谢谢楼上的回答
3楼:谢谢楼上的回答
谢谢楼上的回答,可是PC为什么要变成0x40000018呢?我分析执行BL  SUM_N这句,是占用了4个地址,换句话说是执行的arm指令。为什么不是执行thumb指令呢?前面后面都是在执行thumb指令的啊。

 
快速回复:
用户名: 密码:  验证码,看不清楚?请点击刷新验证码 注册新帐号?
上传图片格式(jpg/gif/png)和文件格式(rar/pdf)
 
 
网站简介s广告服务网站地图帮助信息联系方式问题报告
Copyright 2007 - 2008 bbs.weeqoo.com
Powered By weeqoo Version 8.0.0XML