微机原理与接口技术课程笔记(汇编语言)

文章详细介绍了80C51单片机的指令系统,包括数据传输、算数运算、逻辑操作、控制转移和位操作类指令,以及7种寻址方式。同时,阐述了汇编语言程序设计的基础,如格式、伪指令和设计步骤,为理解和编写80C51汇编程序提供了基础指导。

目录

一、指令系统

(〇)寻址方式(7种)

(一)数据传输类指令

(二)算数运算类指令

(三)逻辑操作类指令

(四)控制转移类指令

(五)位操作类指令

二、汇编语言程序设计

(一)汇编语言格式

(二)伪指令

(三)设计步骤


一、指令系统

  • 单片机能够执行的各种指令的合集称为指令系统,80C51的指令系统共有111条指令
  • 80C51汇编语言指令格式

操作码 操作数1,操作数2         ;注释

MOV  A,5BH              ;(5BH)→A  表示将内部存储器5BH存储单元的内容送到累加器A中

操作码:规定了指令的操作功能

操作数:参加操作的数据或者数据的地址

传送类指令最多有2个操作数

左操作数:目的操作数(操作结果存放的单元地址)

右操作数:源操作数(操作数的来源)

(〇)寻址方式(7种)

  • 指出参与操作的数或数所在的地址
符号约定
符号含义备注
Rn

工作寄存器组R0~R7

由PSW中RS1、RS0确定

从0~3共4组

Ri

i = 0,1;数据指针R0或R1

由PSW中RS1、RS0确定

第0组:00H、01H

第1组:08H、09H
第2组:10H、11H

第3组:18H、19H

#data8位立即数,常数
#data1616位立即数,常数
direct直接地址单元(包括RAM、SFR、I/O)
addr1111位目的地址

PC当前地址位基地址

跳转到目的地址

相对于PC的基地址而言的

addr1616位目的地址
rel相对偏移量,8位有符号数(补码形式)范围 +127~-128
bit位地址
@间接寻址方式中,表示间接寄存器的前缀符号
X片内RAM的直接地址(包含位地址)或寄存器
(X)表示X中的内容
((X))间接寻址方式中,表示间址寄存器X指出的地址单元中的内容
数据传送方向
寻址方式
寻址方式功能说明举例功能说明
1. 寄存器寻址操作数存放在所选定的寄存器中MOV A,R6(R6) → A
2. 直接寻址直接给出参加运算的操作数地址MOV A,50H(50H) → A
3. 立即寻址直接给出参加运算的操作数MOV A,#50H50H → A

4. 寄存器间接寻址

访问片外RAM必用

间接寻址寄存器中存放操作数地址

R0、R1、SP、DPTR要加前缀@

MOV A,@Ri

MOVX A,@DPTR

((Ri)) → A

((DPTR)) → A

5. 变址寻址

基址寄存器:DPTR / PC

变址寄存器:累加器A

“基址寄存器+变址寄存器”间接寻址

MOVC A,@A+DPTR((A+DPTR)) → A

6. 相对寻址

相对转移指令必用

转移到目的地址
目的地址=源地址+转移指令字节数+rel

汇编语言可以自动算出目的地址

JNZ 30H30H是rel(偏移量)
7. 位寻址对可位寻址的SFR中任一个二进制位进行位操作SETB 6AH

将片内RAM中2DH单元中第2位

即6AH这一位置1

(一)数据传输类指令

  • 数据传送指令是把源操作数传送到目的操作数,指令执行后,源操作数不改变,目的操作数修改为源操作数。

1. 内部RAM数据传送指令

2. 外部数据传送指令(只能用寄存器间接寻址)

3. 查表指令

4. 堆栈操作指令(PUSH/POP)

5. 交换指令(都需要借助A)

(二)算数运算类指令

1. 加法指令

2. 带进位加法指令

3. 带借位减法指令

4. 乘法指令(低A高B)

5. 除法指令(商A余B)

6. 加1/减1指令

7. 十进制调整指令(对非法BCD码进行修正,不是进制转换指令)

(三)逻辑操作类指令

1. 逻辑与指令

2. 逻辑或指令

3. 逻辑异或指令

4. 循环位移指令(只能对A操作)

5. 取反指令

6. 清零指令(只能对A操作)

(四)控制转移类指令

1. 无条件转移指令

2. 条件转移指令

3. 调用子程序及返回指令

4. 空操作指令

(五)位操作类指令

1. 位数据传送指令

2. 位修正指令

3. 位逻辑运算指令

4. 判位转移指令


二、汇编语言程序设计

(一)汇编语言格式

标号: 操作码 操作数    ;注释

P2:   MOV A,#60H     ;60H→A

(二)伪指令

  • 这些指令不属于指令系统,不产生机器代码,只是告诉汇编程序如何进行汇编
伪指令
ORG汇编起始指令
END汇编结束指令
EQU赋值指令(等值伪指令)

(三)设计步骤

(四)程序结构

1. 顺序

2. 循环

3. 分支

4. 查表

5. 子程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值