OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3838|回复: 5

cortex-m3支持的指令mov相关问题

[复制链接]

3

主题

7

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2015-9-20
在线时间
0 小时
发表于 2015-10-27 10:15:15 | 显示全部楼层 |阅读模式
5金钱
求前辈指点:
      小弟在学习cortex-m3内核相关知识,用keil-mdk软件,device选用STM32F103RC,用软件自带的指令模拟器学习汇编指令,
在这种环境下,keil软件支持的是传统的ARM汇编指令还是thumb2指令?
mov rd, #imm  ; 将立即数imm移动到通用寄存器rd中
上面这条指令中 立即数是几位的? 查指令表说是16位的,高16位会清0,可为什么我用的立即数为0x5a5a5a5a,编译不会出错,仿真模拟时,发现会0x5a5a5a5a完整的传递到r0中,这是为什么?
代码如下:
    AREA RESET , CODE, READWRITE, ALIGN=3
STACK_VALUE EQU 0x20008000
    DCD STACK_VALUE
    DCD start

    ENTRY

start
    mov r0,#0x40000000

loop
    B loop
    nop
table
    dcd 0x0,0x33334444,0x55556666


    END

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2015-9-20
在线时间
0 小时
 楼主| 发表于 2015-10-27 10:17:49 | 显示全部楼层
代码中的立即数改为0x40000000了,不过原理结果是一样的,还请各位高手解惑,谢谢!
回复

使用道具 举报

14

主题

1592

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2622
金钱
2622
注册时间
2014-7-17
在线时间
350 小时
发表于 2015-10-27 10:18:33 | 显示全部楼层
汇编不了解,帮不到你
回复

使用道具 举报

3

主题

197

帖子

0

精华

高级会员

Rank: 4

积分
538
金钱
538
注册时间
2012-7-19
在线时间
63 小时
发表于 2015-10-27 10:54:56 | 显示全部楼层
你可以看看是不是已经变成其他汇编指令了
回复

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3722
金钱
3722
注册时间
2011-5-23
在线时间
2013 小时
发表于 2015-10-27 11:47:18 | 显示全部楼层
汇编器会自动把伪指令改成最合适的实现方式。
大的数建议使用 LDR指令,汇编器会自动生成DCD数据。
RT-Thread RTOS 音频,WIFI,蓝牙
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2015-10-27 15:50:03 | 显示全部楼层
cortex-m3仅支持thumb2指令,也并非支持所有的thumb2指令,有很少一部分Thumb-2指令是不支持的。由于不支持ARM指令集,也就没有了处理器状态在Thumb和ARM之间来回的切换,省去了很多麻烦。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 06:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表