1、MOV指令
MOV指令的语法格式:
Rd只能是寄存器
Op2寄存器或立即数
Op2为寄存器时:
MOV R0, R1
MOV R0, R1, LSL #4 ;将R1中的值逻辑左移4位放入R0
Op2为立即数
立即数就只能由0到255中得某个数经过循环右移偶数次(包含0次)得到
MOV R0,#0x20 ;正确
MOV R0,#0x200 ;正确
MOV R0,#0x201 ;不可
2、LDR伪指令
那么如果想给R0赋0x201怎么办呢?可以使用伪指令LDR,如果LDR第二个 操作数前有=,则是LDR伪指令
LDR R0,=#0x201 ;它会被汇编器转换成一条“相对PC的加载指令”
常用LDR为指令向某个内存地址写入一个值
;将5写入内存0x20000000处
COUNT EQU 0x20000000
LDR R0, =COUNT
MOV R1, #5
STR R1, [R0]
3、LDR加载指令
LDR指令用于从内存中读取数据放入寄存器
COUNT EQU 0x20000000
LDR R0, =COUNT
LDR R1, [R0]