汇编语言学习笔记
汇编语言是直接和硬件打交道的语言。
方便自我操作链接: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中的值(0或1)传送到位累加器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,指向下一个单元