继续努力 四极管的BOOTLOADER,尽量自己写,加深自己的理解。
学习一下汇编LDR 和 STR的用法
ARM是RISC结构,数据从内存到CPU之间的移动只能通过LDR和STR指令来完成,也就是LDR/STR指令。
使用单一数据传送指令(STR和LDR)来装载和存储单一字节或字的数据从CPU到内存。
LDR是内存数据放到寄存器,即装载,是读
STR是寄存器数据到内存,即存储,是写
如:
LDR R0, 0X12345678
就是把0x12345678这个地址放到R0中,而MOV不能干这个活,MOV只能在寄存器之间移动数据,或者把立即数移动到寄存器中,这个和X86这种CISC架构的芯片区别最大的地方。
X86中没有LDR这种指令,因为X86的MOV指令可以将数据从内存中移动到寄存器中。还有就是LDR伪指令,虽然LDR伪指令和ARM的LDR指令很像,但是作用不太一样,LDR伪指令可以在立即数前加上=,以表示把一个地址写到某寄存器中,如:
ldr r0, =0x12345678
就是把0x12345678这个地址写到R0中了,所以,LDR伪指令和MOV有点相似。只不过MOV指令限制了立即数的长度为8位,也就是不能超过512,而LDR没有这个限制。
转载请注明出处。作者:四极管。广西师范大学 电子工程学院大学生科技创新基地 邮箱: yangxingbo-0311@163.com。