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

news/2024/9/23 2:24:09/

目录

一、指令系统

(〇)寻址方式(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. 子程序


http://www.ppmy.cn/news/56310.html

相关文章

我们公司的面试,有点不一样!

我们公司的面试,有点不一样! 朋友们周末愉快,我是鱼皮。因为我很屑,所以大家也可以叫我屑老板。 自从我发了自己创业的文章和视频后,收到了很多小伙伴们的祝福,真心非常感谢! 不得不说&#…

网络安全:windows批处理写病毒的一些基本命令.

网络安全:windows批处理一些命令. echo off一般都写在批处理的最上面,用于关闭回显,意思是 关闭回显: 没有关闭回显: 所以,意思就是将输入指令的过程隐藏起来。 set是设置的意思,作业是打印、创建和修改变…

Python自动化测试框架之unittest使用详解

unittest是Python自动化测试框架之一,提供了一系列测试工具和接口,支持单元测试、功能测试、集成测试等多种测试类型。unittest使用面向对象的思想实现测试用例的编写和管理,可以方便地扩展和定制测试框架,支持多种测试结果输出格…

Go官方指南(一)包、变量、函数

import "time" 获取当前系统时间:time.Now() 每个 Go 程序都是由包构成的 按照约定 ,包名与导入路径的最后一个元素一致。例如,"math/rand"包中的源码均以 package rand 语句开始 在 Go 中,如果一个名字以…

人工智能之配置环境教程二:在Anaconda中创建虚拟环境安装GPU版本的Pytorch及torchvision并在VsCode中使用虚拟环境

人工智能之配置环境教程二:在Anaconda中创建虚拟环境安装GPU版本的Pytorch及torchvision并在VsCode中使用虚拟环境 作者介绍一. 查看自己电脑的CUDA版本1.1 方式一1.2 方式二 二. 下载安装CUDA三. 查看环境变量四. 创建虚拟环境4.1 使用指令创建虚拟环境4.2 查看Anc…

安全意识培训:如何提高员工网络安全意识?

随着网络技术的不断发展和应用,网络安全已经成为企业必须关注和重视的问题。尤其是在今天,企业数字化转型的大背景下,网络安全问题日益凸显。对于企业而言,员工是企业安全的第一道防线,提高员工的网络安全意识已经成为…

基于JavaSpringmvc+myabtis+html的鲜花商城系统设计和实现

基于JavaSpringmvcmyabtishtml的鲜花商城系统设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式…

PHP面试宝典之PHP篇

PHP数组函数? array_merge(合并) array_unique(去重) array_intersect(交集) array_diff(差集) array_map(回调) array_values(重置索…