kk EQU 0x100
AREA Init,CODE,READONLY
ENTRY
start
MOV R0,#kk
MOV R0,#0x5001
B .
END
--------------------------------------------
报错。说立即数0x00005001超出范围
如果改成MOV R0 #0x5004就不报错
ads1.2下面MOV指令只能送4的倍数值?
怎么回事啊?
另外:
MOV R0,#0x101 也会报错
MOV R0,#0x104 就不会报错
?
共3条
1/1 1 跳转至页

你去了解一下ARM的指令结构和MOV指令的具体定义就会明白了。这里大概说一下为什么,具体的麻烦你参考
ARM ARCHITECTURE REFERENCE MANUAL.
一条ARM指令是32-bit的,每条指令都有固定的定义。32-bit指令包括了指令定义,条件码,目的寄存器,及
其操作数。其中操作数有MOV指令的B[11:0]比特定义,总共是12-bit. 这12-BIT会按照一定的要求来解析。
很显然,这12比特并不能表示所有的数。这就是为什么会报错了。
如果LZ要装载一个数到一个寄存器,而MOV指令满足不了要求,可以用LDR指令,例如: LDR R0, =0X5001
ARM ARCHITECTURE REFERENCE MANUAL.
一条ARM指令是32-bit的,每条指令都有固定的定义。32-bit指令包括了指令定义,条件码,目的寄存器,及
其操作数。其中操作数有MOV指令的B[11:0]比特定义,总共是12-bit. 这12-BIT会按照一定的要求来解析。
很显然,这12比特并不能表示所有的数。这就是为什么会报错了。
如果LZ要装载一个数到一个寄存器,而MOV指令满足不了要求,可以用LDR指令,例如: LDR R0, =0X5001
共3条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
分享开发笔记,赚取电动螺丝刀(便携轻巧与无刷电机两款可选) | |
看《关键跃升》,聊聊工作心法、动力、能力、沟通与协作,从五个方面深入交流你的工作心得 | |
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
我要给自己挣一部逻辑分析仪 | |
用知识换取送给亲朋的礼物,做个浪漫的开发者 | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 |
打赏帖 | |
---|---|
Buck电路工作在CCM模式下电感电流的计算公式是什么?被打赏5分 | |
buck电路工作原理被打赏5分 | |
基于MSPM0L1306的MODBUS-RTU协议通讯实验被打赏100分 | |
我想要一部加热台+多合一调试工具被打赏18分 | |
每周了解几个硬件知识+485硬件知识分享被打赏10分 | |
【换取手持数字示波器】树莓派PICO调试器官方固件本地化部署实践被打赏24分 | |
【换取手持数字示波器】分享一个KEIL无法识别CMSIS-DAP调试器的解决办法被打赏20分 | |
【换取手持数字示波器】分享一个自制的ArduinoNano扩展板底板被打赏23分 | |
【换取手持示波器】树莓派PICOW网页烟花被打赏18分 | |
【换取手持示波器】树莓派PICO逻辑分析仪被打赏16分 |