第三章 单片机的指令系统

合集下载

第3章 指令系统(BH)

第3章 指令系统(BH)
• 指令:是CPU根据人的意图来执行某种操作的命令。
• 程序设计语言:是实现人机交换信息的基本工具,
分为机器语言、汇编语言和高级语言。 能直接识别和执行的语言。
• 机器语言:用二进制编码表示每条指令,是计算机
• 汇编语言:是用助记符、符号和数字等来表示指令
的程序设计语言。它与机器语言指令是一一对应的。
MOV direct,Rn;
111 1rrr direct
(Rn)
direct
MOV direct, direct;
1000 0101 源 direct 目的 direct
(源 direct) 目的 direct
MOV direct,@Ri ;
1000 011i direct
((Ri))
direct
• 例如
计算机科学学院
电子信息科学教研室
12
• 例如:将片内RAM 65H单元内容47H送A,可执行 指令“MOV A,@R0”。其中R0内容为65H。如 图所示:
以指令中所指定 的R0内容(65H) ① 为指针
地址 数据存储器
R0
65H

② A
47H
将片内RAM 65H单 元内容47H送A
65H
11
计算机科学学院
电子信息科学教研室
4、寄存器间接寻址
• 寄存器间接寻址:操作数的地址事先存放在某个寄
存器中,寄存器间接寻址是把指定寄存器的内容作为 地址,由该地址所指定的单元内容作为操作数。
• 89C51规定R0或R1为间接寻址寄存器,它可寻址内部
地址RAM低位的128B单元内容。还可采用DPTR作为 间接寻址寄存器,寻址外部数据存储器的64KB空间。

第3章 STC15单片机的指令系统

第3章  STC15单片机的指令系统

;进位位C与30H位相与,结果保存在C中 ;进位位C送35H位 ;20H位置1
单片机原理与接口技术————基于STC15系列的51单片机原理
第3章 STC15单片机的指令系统
七、 相对寻址
在相对寻址的转移指令中,转移指令的所在的PC值加上其指令的字节数构成了 程序转移的目的地址。
目的地址表达式: 目的地址=转移指令地址+转移指令字节数+偏移量
据传送指令不影响标志C、AC和OV(除非以PSW为目的的指 令),但可能会对奇偶标志P有影响。
单片机原理与接口技术————基于STC15系列的51单片机原理
第3章 STC15单片机的指令系统
一、 内部数据传送指令
以累加器A为目的操作数的指令
MOV A,data ;直接寻址 ,(data)→(A), 直接单元地址中的内容送到累加器A
一、 STC15单片机指令格式
1. 机器指令与汇编指令
机器指令:二进制代码形式,是CPU唯一能识
别和处理的指令
11101000
汇编指令:将机器指令用类似于英文的助记符
表示。
MOV A,R0
单片机原理与接口技术————基于STC15系列的51单片机原理
第3章 STC15单片机的指令系统
4
一、 STC15单片机指令格式
2. 操作数与操作码
操作数:操作的对象。
操作码:指令执行的操作
MOV A,R0
源操作数
目的操作数
单片机原理与接口技术————基于STC15系列的51单片机原理
第3章 STC15单片机的指令系统
一、 STC15单片机指令格式
4. 汇编语言的语句格式
[标号:] 操作码助记符 [目的操作数][,源操作数][;注释] AGAIN: MOV A,R0 ;把R0的内容送累加器A

专题四 MCS-51指令系统-第三章 单片机的指令系统

专题四 MCS-51指令系统-第三章 单片机的指令系统

8、指令字节数和机器周期数
第三章 单片机的指令系统
是必须掌握的内容。 Ø 一台计算机所有指令的集合, 称为该计算机的指令系统。 Ø 各种计算机都有专用的指令系统。
Ø 本章主要介绍单片机的寻址方式及指令系统,
学时分配:2学时 1—53+97+98+99 2学时 54—96 100
第三章 单片机的指令系统 • 3.1 MCS-51 指令系统概述

按指令字长分类
按指令执行时间分类
3.2 寻址方式
• 寻址方式:7种
– – – – – – – – – 寄存器寻址 直接寻址 寄存器间接寻址 立即寻址 变址间接寻址 相对寻址 位寻址 寻址方式与寻址空间 MCS-51单片机的两个突出特点
寄存器寻址——操作数存放在寄存器中
寄存器为 MOV A,R0 MOV R0,#01001111B R0~R7,A,DPTR,C SETB RS0 MOV R3,#56H
目的寻址为直接寻址
2) 20H ~2FH 可位寻址区的寻址方式
字节寻址方式: 直接寻址 direct
寄存器间接寻址@R0,@R1
位寻址: bit 直接寻址
例: MOV 26H,C ; 位寻址 (26H)1位
MOV 26H,A ;字节寻址(26H)8位
3) 30H ~7FH 数据缓冲区的寻址方式
字节寻址方式: 直接寻址 direct
MOV A,#23H
PUSH ACC
;
A寄存器寻址
POP
0E0H
;直接寻址
4、可做片内RAM的指针有:
R0,R1, 四个组共有8个 预先设置RS1、RS0,以选定组。 SETB RS0 CLR RS1; 1组

第三章MCS51系列单片机指令系统及汇编语言程序设计

第三章MCS51系列单片机指令系统及汇编语言程序设计
AJMP addr11 绝对转移指令为2K地址范围内的转移指令,对转移目的地址的要求与 ACALL指令中对子程序入口地址的要求相同。 【3】短转移指令
SJMP rel ;PC+ 2 + rel→PC 短转移指令为一页地址范围内的相对转移指令。因为rel为1字节补码 偏移量,且SJMP rel指令为2字节指令,所以转移范围为-126D~+ 129D 【4】间接转移指令
表3.4 程序存储器空间中的32个基本2K地址范围
0000H~07FFH 0800H~0FFFH 1000H~17FFH 1800H~1FFFH 2000H~27FFH 2800H~2FFFH 3000H~37FFH 3800H~3FFFH 4000H~47FFH 4800H~4FFFH 5000H~57FFH
3. 寄存器寻址
以通用寄存器的内容为操作数的寻址方式。通用寄存 器包括:A,B,DPTR,R0~R7。其中,R0~R7必须在 工作寄存器组之中。
例如:INC R0 ;(R0)+1→R0
需要注意的是,A和B既是通用寄存器,又是具有直 接地址的特殊功能寄存器。
4. 寄存器间接寻址
以寄存器中的内容为地址,该地址中的内容为操作数的寻址方式。能够 用于寄存器间接寻址的寄存器有:R0,R1,DPTR,SP。其中,R0,R1必 须在工作寄存器组之中,SP仅用于堆栈操作。
MCS-51单片机共有111条指令,按功能分类, MCS-51指令系统可分为5大类:
➢ 数据传送类指令(共29条) ➢ 算术操作类指令(共24条) ➢ 逻辑操作类指令(共24条) ➢ 控制转移类指令(共17条) ➢ 布尔变量操作类指令(共17条)
1.数据传送类指令(共29条)
以累加器A为目的操作数类指令(4条)

第3章 51单片机指令系统

第3章 51单片机指令系统
MOV MOV MOV MOV MOV MOV MOV R0, #30H ;R0←30H ,立即寻址 A, @R0 ;A←(R0) ,寄存器间接寻址 R1, A ;R1←A ,寄存器寻址 B, @R1 ;B←R1 ,寄存器间接寻址 @R1, P1 ;(R1)←P1 ,直接寻址 P2, P1 ;P2←P1 ,直接寻址 10H, #20H ;(10H)←20H ,立即寻址
3.1.3 堆栈操作指令
(1)入栈指令:
PUSH direct; SP ← SP+1, (SP) ← (direct)
入栈操作:栈指针SP+1指向栈顶的上 一个空单元,将直接地址direct寻址的单元 内容压入当前SP所指示的堆栈单元中。 (本操作不影响标志位)
例3-3 在中断响应时,SP=09H,数据 指针DPTR的内容为0123H。执行下列指令 后:
MOV @Ri , A ; (Ri)←A MOV @Ri , direct ; (Ri)←(direct) MOV @Ri , data ; (Ri)←#data 上述指令将累加器A,直接地址单元内 容或立即数送到Ri间接寻址单元中。由于内 容较多,下面需要说明:
累加器A是个使用最多的寄存器,MCS-51单 片机以A为中心体系结构。绝大部分指令均需通 过A送到ALU进行运算,结果存于A中,有些指令 仅在A中进行。 直接地址direct ,8位直接地址可寻址0~255个 单元。对于8051则直接寻址内部RAM0~127地址 空间的单元及128~255地址空间的特殊功能寄存 器。这里需注意128~255地址空间很多单元开始 时无定义,对无定义单元进行读/写,则读数不定, 欲写入的数将丢失。 间接寻址@Ri,@间接寻址的符号,是以Ri 的内容作为地址进行寻址,亦即Ri的内容不是操 作数,而是地址。此地址所对应的单元内容才是 所要找的操作数。间接寻址的寻址范围与直接寻 址相同(0~255)。直接寻址单元在编程时就已 明确,而间接寻址单元是在程序运行中明确。

8051单片机3单片机指令系统

8051单片机3单片机指令系统

(1) 方括号[ ]表示该项是可选项, 可有可无。 (2) 标号是用户设定的符号, 它实际代表该指令所在的地址。 标号必须以字母开头, 其后跟1~8个字母或数字, 并以“:”结 尾。 (3) 操作码是用英文缩写的指令功能助记符。它确定了本条指 令完成什么样的操作功能。如: ADD表示加法操作。任何一 条指令都必须有该助记符项, 不得省略。 (4) 操作数指的是指令操作的数据. 可以是一个数,也可以是寄 存器和特殊功能寄存器,还可以是标号地址;个数可以为0, 3 也可以为1,2,3
23
3.4.1 数据传送类指令
3.4.1 数据传送类指令
数据传送类指令共29条, 它是指令系统中最活跃、 使 用最多的一类指令。一般的操作是把源操作数传送到目的操 作数, 即指令执行后目的操作数改为源操作数, 而源操作数保 持不变 数据传送类指令不影响进位标志CY、 半进位标志AC 和溢出标志OV, 但当传送或交换数据后影响累加器A的值时, 奇偶标志P的值则按A的值重新设定。 按数据传送类指令的操作方式,又可把传送类指令分 为3种类型: 数据传送、数据交换和堆栈操作, 并使用8种助记 符: MOV、MOVX、MOVC、XCH、XCHD、SWAP、 PUSH及POP 24
3.4.1 数据传送类指令
25
3.4.1 数据传送类指令
1. 内部数据存储器间数据传送指令
内部RAM区是数据传送最活跃的区域, 可用的指令数也最 多, 共有16条指令, 指令操作码助记符为MOV,通用格式为: MOV 目的操作数 , 源操作数 内部RAM之间源操作数传递关系如下图所示
26
3.4.1 数据传送类指令
4
3.1 指令格式
指令描述符号:
在分类介绍各类指令之前, 先对描述指令的一些 符号意义进行一些简单约定:

第三章-80C51单片机的指令系统

第三章-80C51单片机的指令系统

第三章-80C51单片机的指令系统80C51单片机是一种常用的微控制器,广泛应用于嵌入式系统中。

其指令系统是该单片机的核心组成部分,决定了其功能和特性。

在本文中,我们将深入探讨80C51单片机的指令系统,包括其指令格式、指令集以及指令的执行过程。

一、指令格式80C51单片机的指令格式通常由若干个字节组成,每个字节又分为几个字段。

具体而言,一条指令通常包括操作码、目标操作数和源操作数等字段。

其中,操作码表示指令的类型和功能,目标操作数表示指令操作的目标寄存器或内存单元,源操作数表示指令操作的源寄存器或内存单元。

以MOV指令为例,其指令格式如下:| 操作码 | 目标操作数 | 源操作数 |其中,操作码为一个字节,表示MOV指令;目标操作数和源操作数也为一个字节,分别表示指令操作的目标和源。

二、指令集80C51单片机的指令集丰富多样,包括数据传送指令、算术运算指令、逻辑运算指令、分支指令等等。

这些指令可以实现各种功能,满足不同的应用需求。

1. 数据传送指令数据传送指令用于将数据从一个寄存器或内存单元复制到另一个寄存器或内存单元。

例如,MOV指令可以实现数据传送操作。

2. 算术运算指令算术运算指令用于进行加法、减法、乘法和除法等运算。

例如,ADD指令可以实现两个操作数的相加操作。

3. 逻辑运算指令逻辑运算指令用于进行与、或、非、异或等逻辑运算。

例如,AND 指令可以实现两个操作数的与运算。

4. 分支指令分支指令用于实现循环、条件判断和跳转等功能。

例如,JMP指令可以无条件跳转到指定的地址。

除了上述指令之外,80C51单片机还支持位操作指令、移位指令、输入输出指令等。

三、指令执行过程在80C51单片机中,指令的执行过程包括取指、译码、执行以及访问存储器等阶段。

1. 取指阶段取指阶段是指令执行的第一步,其目的是从存储器中读取指令。

取指的过程通常涉及到程序计数器的操作,确定下一条要执行的指令地址。

2. 译码阶段译码阶段是将取到的指令进行解码,将其转换为内部指令表示形式,以便后续的执行。

03.9 第三章 - 单片机指令系统(位操作指令MOV、SETB、CLR、CPL、ANL、ORL)

03.9 第三章 - 单片机指令系统(位操作指令MOV、SETB、CLR、CPL、ANL、ORL)

;A = 59H = 0101 1001B ;P1 = A = 0101 1001B ;C = 1 ;ACC.1 = 1 ;P1.3 = 0 ;P1.6 = 0 ;P1.2 = 1 ;(20H)= P1 = 0001 0101B ;(30H)= A = 0101 1011B
09:43
单片机技术
8
3.9.2 位控制指令(SETB、CLR、CPL)
;P1.0 = 1 ;ACC.3 = 0 ;C = 1 ;C = 1 ;C = 1 ;P3.4 = 1
09:43
单片机技术
14
3.9.3 位条件转移指令(JC、JB、JBC)
❖ 1.判C转移指令ຫໍສະໝຸດ JC、JNC)JC rel
;先PC←PC+2;若(Cy)= 1时转移,且PC'
=PC+rel,否则顺序执行
CPL bit ;(bit)= (/bit)
▪ 功能:将Cy或bit取反。
09:43
单片机技术
9
3.9.2 位控制指令(SETB、CLR、CPL)
❖ 课堂练习
▪ 执行以下指令?
SETB P1.0 CLR 20H CLR PSW.2 CPL PSW.2 CLR RS0 SETB RS1
;P1.0 = 1 ;20H = 0 ;PSW.2 = 0 ;PSW.2 = 1 ;RS0 = 0 ;RS1 = 1
❖ 1.位置1指令(SETB)
▪ 格式:SETB C ;(Cy) = 1
SETB bit ;(bit)= 1
▪ 功能:将Cy或bit置1。
❖ 2.位置0指令(CLR)
▪ 格式:CLR C ;(Cy) = 0
CLR bit ;(bit)= 0
▪ 功能:将Cy或bit置0。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8500H EQU R1 EQU 10H EQU 87E6H R0,A10 A,AA DELAY
;R0←(10H) ;A←(R1) ;调用起始地址为 ;87E6H的子程序
END EQU赋值后,AA为寄存器R1,A10为8位直接 地址10H,DELAY为16位地址87E6H。
7.数据地址赋值伪指令:DATA
例: MOVC A,@A+DPTR ;A(A+DPTR) 设指令执行前 A=09H,DPTR=2000H,存储器单元内容 如图所示。执行指令后,A= ? 12H 2008H 89H DPTR= 2000H ?
2009H 12H
六、相对寻址方式 以PC的内容作为基地址,加上偏移量,所得结 果送PC寄存器作为转移地址。偏移量在-128~ +127之间。 例:SJMP 80H ;短跳转
DPTR→
片外 RAM 地址 内容 2000H X „ 2100H
3、外部ROM字节传送指令(查表指令) 实现从程序存储器读取数据到A累加器,只能使用变 址间接寻址方式。 多用于查常数表程序,可直接求取常数表中的函数值。 1).DPTR为基址寄存器 MOVC A,@A+DPTR ;A(A+DPTR) 查表范围为 64KB 程序存储器任意空间,称为远 程查表指令 。 2).PC为基址寄存器 MOVC A,@A+PC ;A(A+PC) 常数表只能在查表指令后256B范围内。(PC内 容为下一条指令的起始地址。)
(一)内部传送指令(15条):实现片内数据存储器中 数据传送。 指令格式: MOV 目的操作数,源操作数 寻址方式:立即寻址、直接寻址、寄存器寻址、寄存 器间址。 MOV A,Rn ;A←Rn,Rn=R0~R7 MOV A,direct ;A←(direct), MOV A,@Ri ;A←(Ri),Ri=R0、R1 MOV A,#data ;A←data MOV Rn,direct ;Rn←(direct) MOV @Ri,direct ;((Ri))←(direct) MOV direct1,direct2 ;(direct1)←(direct2)
例:查表法求Y=X2。设X(0≤X≤15)在片内RAM的20H单 元中,要求将查表求Y,存入片内RAM21H单元。 2)指令地址 源程序 ORG 1000H ;程序起始地址 1000H SQU: MOV A,20H ;取X 1002H ADD A,#3 ;修正偏移量 1004H MOVC A,@A+PC ;查表求Y=X2 1005H MOV 21H,A ;存结果 1007H RET ;子程序结束 1008H TAB: DB 00,01,04 ;平方表 100BH DB 09,…,225
2. 间址寄存器只能使用 R0、R1,如 MOV A, @R0 非法指令:MOV A,@R2 3. SFR区只能直接寻址,不能用寄存器间接寻址。 非法指令:MOV R0,#80H MOV A,@R0 只能是:MOV A,80H 或 MOV A,P0
4. 以累加器A为目的寄存器的传送指令会影响PSW 中的奇偶标志位,其余传送指令对所有标志位均 无影响。
二、 伪指令
汇编时不产生机器码,仅供汇编识别控制。
1.定位伪指令:
例3-3 ORG START:SJMP
… ORG 0030H MAIN: MOV SP,# 30H 以START开始的程序汇编为机器码后从0000H存贮单元开始连 续存放。
ORG
0000H MAIN
m
2.结束伪指令: END
3.定义字节伪指令:DB
例如:MOV - 传送 ANL - 逻辑与 MUL - 乘法 RR - 右循环 SJMP- 短跳转 RET - 子程序返回
[标号:] 操作码 [操作数1],[操作数2][;注释] 例: LOOP: MOV A,#40H ;40H -> A 3.操作数:指令操作对象 数据、地址、寄存器名及约定符号。 4.注释行:说明指令在程序中的作用。 操作码和操作数是指令主体。
执行指令后,Cy= ? 0
位寻址区 28H 29H 01100010 11010111
3-3 指令的类型、字节和周期 MCS-51指令系统中共有111条指令,按功 能可分为以下四大类: · 数据传送类 · 算术操作类 · 逻辑操作类 · 控制转移类
3-4 数据传送指令
实现寄存器、存储器之间的数据传送。 1、内部传送指令:片内数据存储器数据传送。 2、外部传送指令:片外数据存储器数据传送。 3、交换指令: 片内数据存储器数据传送。 4、堆栈操作指令:片内数据存储器数据传送。 5、查表指令: 程序存储器数据传送。
例:查表法求Y=X2。设X(0≤X≤15)在片内RAM的20H单 元中,要求将查表求Y,存入片内RAM21H单元。 1) ORG 1000H SQU: MOV DPTR,#TAB ;确定表首地址(基地址) MOV A,20H ;取X(偏移量) MOVC A,@A+DPTR ;查表求Y=X2 MOV 21H,A ;保存Y RET ;子程序结束 … ;其它程序段 ORG 3000H ;常数表格首地址 TAB: DB 00,01,04,09,…,225 ;平方表
程序存储器 程序转到0F87H执行
PC PC+1 PC+2
1005H 1006H 1007H
1000 0000 1000 0000
操作码 偏移量
PC 1007
ALU 1007+80=0F87
七.位寻址方式
指令给出位地址。一位数据在存储器位寻址区。
例: MOV C,40 ;Cy(位地址40)
设指令执行前 Cy=1,位地址40存储器单元如图,
第三章
3-1 指令格式
MCS-51指令系统
3-2 寻址方式 3-5 算术运算指令
3-4 数据传送指令
3-6 逻辑运算指令
3-6 位操作指令
3-7 控制转移指 汇编语言指令格式 [标号:] 操作码 [操作数1],[操作数2][;注释] 例: LOOP: MOV A,#40H ;40H -> A 1.标号:指令的符号地址。1~8个字母或数字,并 以冒号“:”结尾。 2.操作码:指明指令功能。2~5个字母。
(二) 外部传送指令(7条) 实现片外数据存储器和A累加器之间的数据传送。
1、唯一的十六位数传送指令
MOV DPTR,#data
;DPTR←data
立即数其实是外部ROM / RAM的地址,专门配合 外部传送指令来用。
2、外部RAM字节传送指令
指令格式:MOVX
目的操作数,源操作数
寻址方式:片外数据存储器用寄存器间址方式。 1). DPTR作16位数据指针,寻址64KB片外RAM空间 MOVX A,@DPTR ;A←(DPTR) MOVX @DPTR,A ;(DPTR)←A ;A←(Ri) ;(Ri)←A 2). Ri作8位数据指针,寻址256B片外RAM空间 MOVX A,@Ri MOVX @Ri,A
操作 码
目的

操作内容
字节 数 2 2 1 1 2 2 1 3 2 3 2 2 2 2 1
执行 时间 1 1 1 1 1 2 1 2 1 2 2 1 1 2 1
A,
#data direct @Ri Rn #data direct A #data A direct @Ri Rn #data direct A
例:实现片外数据存储器数据传送(2000H)(2100H)。 MOV MOVX MOV MOVX DPTR,#2000H A,@DPTR DPTR,#2100H @DPTR,A
; DPTR= 2000H ; A= X ; DPTR= 2100H ;(2100H)= X
片外数据存储器不能直接 寻址。下列为非法指令: MOVX A,2000H MOVX 2100H,2000H
数 据 传 送 指 令
Rn,
(A)←#data (A)←(data) (A)←((Ri)) (A)←(Rn) (Rn)←#data (Rn)←(data) (Rn)←(A) (data)←#data (data)←(A) (data)←(data) (data)←((Ri)) (data)←(Rn) ((Ri))←#data ((Ri))←(data) ((RO)←(A)
例3-4
X1,X2,…Xn
ORG 7F00H DB 01110010B,16H,45,‘8’,‘A’ 汇编后存贮单元内容为: (7F00H)=72H (7F01H)=16H (7F02H)=2DH (7F03H)=38H (7F04H)=40H
4.定义字伪指令: DW Y1,Y2,…,Yn
5.定义空间伪指令:DS
二、直接寻址方式 指令操作数是存储器单元地址,数据在存储器单元中。 MOV A,40H 示, 执行指令 ;A(40H)
41H 40H 78H 56H
例:设存储器两个单元的内容如图所
MOV A,40H

A = 56H ?
直接寻址方式对数据操作时,地址是固定 值,而地址所指定的单元内容为变量形式。
三、寄存器寻址方式 指令操作数为寄存器名,数据在寄存器中。 例: MOV A,R0 ;AR0 设指令执行前 A=20H,R0=40H, 执行指令后,A= 40H ?,R0= 40H ? 四、寄存器间接寻址方式 指令的操作数为寄存器名,寄存器中为数据地址。 存放地址的寄存器称为间址寄存器或数据指针。 例: MOV A,@R0 ;A((R0))
2. 半字节交换指令
XCHD A,@Ri ;A0~3 ((Ri))0~3
SWAP
(三)堆栈操作指令 入栈指令:PUSH n ;SPSP+1,(SP)(n) 出栈指令:POP n ;(n)(SP),SPSP-1 例:设 A=02,B=56H,执行下列指令后, 56H SP= 30H ,A= 02 ,B= ? ? ?
相关文档
最新文档