有关ARM的问题LDR R0,=0x3FF5000和LDR R1,=UARTLCON0中等号的作用是什么?

2024-11-22 15:57:46
推荐回答(1个)
回答1:

不行
你看看ARM的汇编指令就知道了
LDR指令其实有一种是伪指令
LDR OP1,OP2
这个是真正的汇编指令
LDR OP1 ,=OP2
这个是伪指令
两个是有区别的

比如LDR R1,UARTLCON0
的意思是将UARTLCON0寄存器的内容存入R1

但是LDR R1,=UARTLCON0
是将UARTLCON0寄存器的地址存入R1

对于第二操作数是立即数的情况
ARM的指令系统的立即数只允许立即数是八位位图数,具体的意识好像是必须是八位二进制数的位移数,因此对于任意的32位二进制数不能直接使用
于是就出现了伪指令LDR R0,=OP2,
这样可以使用任意32位的二进制数