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

查看: 1179|回复: 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管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版