注册 登录
编程论坛 嵌入式开发

谁知道MOV r0, #0x3FFFC0有没有错误 为什么

lzxm160 发布于 2008-12-10 15:04, 2794 次点击
谁知道MOV r0, #0x3FFFC0有没有错误 为什么
1 回复
#2
魔幻星空2008-12-10 17:47
是ARM指令吗?
ARM里的指令长度为32,其中MOV指令的第12~15们是第一操作数Rn,即寄存器编号,第0~11位是第二操作数<shifter_operand>,即立即数。
这样的立即数必需满足是由一个8位的常数循环右移偶数位得到,其中循环右移的位数由一个4位的二进制数的两倍表示,这样就用了12位的第二操作数。
0x3fffc0不能满足上述条件,所以错误,应改成伪指令: ldr r0, =0x3fffc0
1