#
MOV AX, #30H ;AX=0x30
MOV AX, 30H ;AX中的内容是内存地址30H里保存的数值
[ ]
- 间接寻址
- x ,操作数是 x中存放的数
- [x] , 操作数是 x 中存放的数为地址的单元中的数, 像指针操作 *x
// bx=40F6H, 内存位置40F6H、40F7H两个地址中存放的数是22H、23H
mov ax,[bx] ;2223H传送到ax中
mov ax,bx ;40F6H传送到ax中
LDR
- 读取, 内存数据 -> 寄存器,即装载, 注意和STR的方向区别
LDR R0, =x ;用于加载立即数或一个地址值到指定寄存器中
LDR R0, =0X99 ;将0X99存入R0中
LDR r0, =x ;将x所指向的地址值存入R0中
LDR R0, [R1] ;将R1中的值存到R0
LDR R1, [R2, #16] ;将(R2+16)地址中的内容存到R1
LDR R1, [R2], #4 ;R1=*R2+4, 然后将R2地址中的内容存到R1
STR
- 写入, 寄存器 ->内存, 即存储,注意和LDR的方向区别
STR R1, [r2] ;将r1中的值存到r2所指定的地址中
STR R1, [r2, #4] ;将r1中的值存到r2+4所指定的地址中
STR R1, [r2], #4 ;将r1中的值存到r2所指定的地址中, 同时r2=r2+4
ORR
ORR R0, R1, #3 ;将R1的0、1位置1, 结果存到R0
ORR R0, R1, #0xd3 ;将R1与0xd3(1101 0111)作或运算,结果存到R0, 即把R1的[7:6]和[4]和[2:0]置1