汇编语言学习笔记

汇编语言是直接和硬件打交道的语言。
方便自我操作链接:https://my.stu.edu.cn/courses/campus/pluginfile.php/275434/mod_resource/content/1/第2章.pdf

指令系统

MCS-51 系列单片机有 111 条指令,按功能划分,分为5大类:

  • 数据传输类指令,29条
  • 算术运算类,24条
  • 逻辑运算及移位类指令,24条
  • 控制转移类指令,17条
  • 位操作类指令,17条

一、寻址方式:

1. 立即寻址

MOV A, #3AH        ;3AH这个立即数本身送给累加器A中,#与直接寻址区分

2. 直接寻址

MOV A 3AH  ;把地址为3AH中的数据68H传输给A

3. 寄存器寻址

定义为以寄存器的内容作为操作数

 MOV A,R0    ;寄存器R0中的数据传入累加器A

4. 寄存器间接寻址

以寄存器中的内容作为RAM地址,该地址的内容才是操作数

MOV  A,  @R0    ;把寄存器R0中的内容作为地址,这个地址中的内容送入累加器A

5. 变址寻址

就是基址加上偏移量作为操作数

MOVC   A,   @A+DPTR
MOVC   A,      @A+PC
;注意MOVC取的数据是在ROM中的,为了断电保存重要数据

6. 相对寻址、

就是改变PC值。
相对寻址只在相对转移指令中使用,指令中给出的操作数就是相对地址偏移量rel。相对寻址就是将程序计数器PC的当前值与指令中给出的偏移量rel相加,其结果作为转移地址送入PC中。可以用来实现程序分支转移
rel是带符号8位进制数,-128~+127

SJMP   54H

汇编语言学习笔记

7. 位寻址

MOV   C,  30H  ;该指令把位地址30H中的值(01)传送到位累加器CY中  

二、数据传输类指令

MOV		A,  #data
MOV		A,  direct
MOV		A,  Rn
MOV 	A,  @Ri

MOV 	Rn,  A
MOV		Rn,  #data
MOV		Rn,  direct

堆栈操作

PUSH 	direct		;进栈指令,先SP+1,指向栈顶单元,再将direct送入栈顶
POP 	direct  	;出栈指令,先将SP指向的单元内容送入direct所指的单元,再SP-1,指向下一个单元

三、算术运算类指令

四、逻辑运算及移位类指令

五、控制类转移指令

六、位操作类指令

汇编语言程序设计