4302|3

194

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

M4汇编指令问题 [复制链接]

有没有对M4汇编指令比较熟悉的大牛啊
写段汇编代码遇到错误了
如下一段处理SVC调用号的汇编代码,还是在ARM文档里面的,是ARMV7-A和ARMV7-R的指令,不知道是不是适合ARMV7-M
SVC_Handler     PROC
                EXPORT  SVC_Handler                        
                       IMPORT        handler_svc_1
                       IMPORT        handler_svc_2
                      
                CMP r0,#3                ;SVC range check  
                       LDRLS pc,[pc,R0,LSL #2]
                       B        .
SVC_JUMP_TABLE
           DCD        handler_svc_1
          DCD        handler_svc_2
                      
                ENDP

编译时产生如下错误
error: A1869E: Register Rn must not be PC
说是LDRLS这句里面[pc,R0,LSL #2]里面不能是PC寄存器
此帖出自ARM技术论坛

最新回复

既然你写的是M4的汇编,就参照M4的手册吧. 既然Rn must not be PC 那应该就是不能了 (编译器手册都提示了...) 手册位置如图:(http://infocenter.arm.com/help/index.jsp)   详情 回复 发表于 2016-6-28 13:46
点赞 关注
 

回复
举报

165

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
3.4.3. LDR and STR, register offset
Syntax
op{type}{cond} Rt, [Rn, Rm {, LSL #n}]

Restrictions
In these instructions:
Rn must not be PC
Rm must not be SP and must not be PC
Rt can be SP only for word loads and word stores
Rt can be PC only for word loads.
When Rt is PC in a word load instruction:
bit[0] of the loaded value must be 1 for correct execution, and a branch occurs to this halfword-aligned address
if the instruction is conditional, it must be the last instruction in the IT block.
此帖出自ARM技术论坛
 
 
 

回复

194

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
EETUX 发表于 2016-6-22 11:24
3.4.3. LDR and STR, register offset
Syntax
op{type}{cond} Rt, [Rn, Rm {, LSL #n}]

Restrictions
...

关键是这段代码是那个ARM的帮助文档里面写的啊,我只是复制过来的
此帖出自ARM技术论坛
 
 
 

回复

165

帖子

0

TA的资源

一粒金砂(中级)

4
 
jplzl10000 发表于 2016-6-28 09:20
关键是这段代码是那个ARM的帮助文档里面写的啊,我只是复制过来的

既然你写的是M4的汇编,就参照M4的手册吧.
既然Rn must not be PC 那应该就是不能了
(编译器手册都提示了...)
手册位置如图:(http://infocenter.arm.com/help/index.jsp)



捕获.PNG (14.59 KB, 下载次数: 0)

捕获.PNG
此帖出自ARM技术论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表