汇编指令解释


#

  • 立即数寻址
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

  •  逻辑或运算, 常用于设置操作数1的某些位
 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

 

发布了44 篇原创文章 · 获赞 20 · 访问量 9538

猜你喜欢

转载自blog.csdn.net/zhouml_msn/article/details/103344460