你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 1172|回复: 11

ARM 伪指令

[复制链接]

14

主题

127

回帖

0

蝴蝶豆

中级会员

最后登录
2016-1-19
发表于 2015-1-5 10:55:23 | 显示全部楼层 |阅读模式
start MOV  R0,#10
        ADR  R4 ,start  ;-》SUB R4,PC,#0x0c



为什么Pc要减去12即0x0c而不是4
回复

使用道具 举报

0

主题

8

回帖

0

蝴蝶豆

初级会员

最后登录
2019-3-20
发表于 2015-1-5 12:16:38 | 显示全部楼层
ADR  R4 ,start  ;-》SUB R4,PC,#0x0c
运行这句的时候PC已经指向下一句了,所以实际减去的应该包含2句指令所占的空间。
回复 支持 反对

使用道具 举报

8

主题

390

回帖

2

蝴蝶豆

论坛元老

最后登录
2019-10-14
发表于 2015-1-5 12:18:24 | 显示全部楼层
执行完 ADR 这行,PC指针减去 12 后,会 +4。
(PC - 8),刚好就是 MOV R0,#10 这行。

楼主可以试试 SUB R4,PC, #0x08,这应该是个死循环。
回复 支持 反对

使用道具 举报

14

主题

127

回帖

0

蝴蝶豆

中级会员

最后登录
2016-1-19
 楼主| 发表于 2015-1-5 12:32:04 | 显示全部楼层
arm8686 发表于 2015-1-5 12:18
执行完 ADR 这行,PC指针减去 12 后,会 +4。
(PC - 8),刚好就是 MOV R0,#10 这行。

谢谢  大神 解释的真好  谢谢  我最近 再看ARM汇编  还有个问题

start MOV R0,#10
       ADRL R4,start+6000;->ADD R4,pc,#0xe800
                                      ; ADD R4,R4,#0x254
ADRL
怎么成了两个汇编,这个伪指令为啥要变成 那俩ADD
谢谢!!!
回复 支持 反对

使用道具 举报

14

主题

127

回帖

0

蝴蝶豆

中级会员

最后登录
2016-1-19
 楼主| 发表于 2015-1-5 12:32:49 | 显示全部楼层
pathletboy 发表于 2015-1-5 12:16
ADR  R4 ,start  ;-》SUB R4,PC,#0x0c
运行这句的时候PC已经指向下一句了,所以实际减去的应该包含2句 ...

谢谢  大神 解释的真好  谢谢  我最近 再看ARM汇编  还有个问题

start MOV R0,#10
       ADRL R4,start+6000;->ADD R4,pc,#0xe800
                                      ; ADD R4,R4,#0x254
ADRL
怎么成了两个汇编,这个伪指令为啥要变成 那俩ADD
谢谢!!!
回复 支持 反对

使用道具 举报

0

主题

8

回帖

0

蝴蝶豆

初级会员

最后登录
2019-3-20
发表于 2015-1-5 12:43:46 | 显示全部楼层
为啥2个汇编你得看官方编译器怎么解释。
http://infocenter.arm.com/help/i ... 204ic/Cacecdga.html
ADRL 始终汇编为两个 32 位指令。 即使使用单个指令就可完成地址访问,也会生成多余的第二个地址。
回复 支持 反对

使用道具 举报

14

主题

127

回帖

0

蝴蝶豆

中级会员

最后登录
2016-1-19
 楼主| 发表于 2015-1-5 12:56:33 | 显示全部楼层
pathletboy 发表于 2015-1-5 12:43
为啥2个汇编你得看官方编译器怎么解释。
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.du ...

我理解的是 因为一个指令放不开 那么大的地址 所以变成两个  
书上说因为地址是程序相对偏移或寄存器相对偏移,ADRL产生与位置无关的代码。若label是程序相对偏移,则必需取值成与ARDL伪指令在同一代码区域的地址,否则连接后可能会超出范围。
什么叫位置无关的代码    什么叫同一代码区域    为什么会超出范围

PS   刚开始看arm 汇编  一肚子问题  请大哥耐心解答   非常感激
回复 支持 反对

使用道具 举报

0

主题

8

回帖

0

蝴蝶豆

初级会员

最后登录
2019-3-20
发表于 2015-1-5 13:36:09 | 显示全部楼层
仔细看我给你的连接,你想要的答案上面都有,嵌入式学习,最重要的先要学会看文档,而不是问,问出来的东西,都是人家总结过的,只有一个结果,你却不知道中间过程,这样是不利于学习的。
回复 支持 反对

使用道具 举报

14

主题

127

回帖

0

蝴蝶豆

中级会员

最后登录
2016-1-19
 楼主| 发表于 2015-1-5 14:29:52 | 显示全部楼层
pathletboy 发表于 2015-1-5 13:36
仔细看我给你的连接,你想要的答案上面都有,嵌入式学习,最重要的先要学会看文档,而不是问,问出来的东西 ...

额  好吧  我先看看
回复 支持 反对

使用道具 举报

14

主题

127

回帖

0

蝴蝶豆

中级会员

最后登录
2016-1-19
 楼主| 发表于 2015-1-5 14:35:47 | 显示全部楼层
与非朋 发表于 2015-1-5 14:29
额  好吧  我先看看

恩恩  看到了  文档很全  谢了
回复 支持 反对

使用道具 举报

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版