第3讲_指令系统
计算机导论杨月江版第三讲

它的数据类型由操作码确定 通过执行指令直接发出控制信号控制计算机的操作。指令在寄存器中按其执行顺序存放,由指令记数器指明要执行的
主机 外设
中央处理器
控制器 运算器
寄存器
内存储器
只读存储器(ROM) 随机读写存储器(RAM) 高速缓冲存储器(Cache)
外存储器(软盘、硬盘、光盘、U盘等) 输入设备(键盘、鼠标、光笔、图像扫描仪) 输出设备(显示器、打印机、绘图仪等) 其他(网卡、调制解调器、声卡、显卡等)
3.1.1冯·诺依曼机体系结构
电子计算机的问世,,最重要的奠基人是英国科学家矮兰·图灵和美籍匈牙利科学家冯·诺依曼。图 灵的贡献是建立了图灵机的理论模型,奠定了人工智能的基础,而冯·诺依曼则是首先提出了计算机体 系结构的设想。
3.1.1冯·诺依曼机体系结构
计算机的工作原理
计算机的基本原理是存储程序和程序控制。预先要把指挥计算机如何进行操作的指令序列(称为程 序)和原始数据通过输入设备送到计算机内存中。每一条指令明确规定了计算机从哪个地址取数,进行 什么操作、然后送到什么地址去等步骤。
物理装置按系统结构的要求构成一个有机整体,
为计算机软件运行提供物质基础。简言之,计算
机的硬件功能是输入并存储程序和数据,以及执
行程序把数据加工成可以利用的形式。
硬件
从外观上看,微机由主机箱和外部设备组成, 主机箱内主要包括CPU、内存、主板、硬盘驱 动器、光盘驱动器、各种扩展卡(声卡、显卡、 网卡)、连接线和电源等;外部设备包括鼠标、 键盘、显示器、音响、打印机、U盘和视频设备 等,这些设备通过接口和连接线与主机相连。
3_80C51单片机指令系统

③特殊功能寄存器符号加位的表示方法。例如: MOV C,ACC.6 该指令是将累加器A位六的值赋给位累加器C。 ④位名称表示方法,特殊功能寄存器中的一些寻址 位是有名称的。例如: MOV C,F0 该指令等同于MOV C,PSW.5,因为PSW寄存器位 5为F0标志位。 ⑤利用伪指令定义位地址。有关伪指令的内容参见 4.1节。 位寻址方式是80C51单片机的特有功能,丰富的位操 作指令为逻辑运算、逻辑控制以及各种状态标志的设置提 供了方便。
相关寄存器
寻址空间 程序存储器 片内RAM低128B和SFR
R0~R7,A,B,DPTR, CY @R0,@R1,SP @R0,@R1,@DPTR @A+DPTR,@A+PC PC+rel CY,SFR 片内RAM 片外RAM 程序存储器 程序存储器 片内RAM的位寻址区 可以位寻址的特殊功能寄 存器
③注意直接地址和位地址之间的区别。例如: MOV A,30H MOV C,30H 第一条指令是将直接地址30H中的内容(8位二进制 数)送给累加器A;第二条指令是将位地址30H中的内容 (1位二进制数)送给进(借)位标志位CY。 ④直接寻址是访问特殊功能寄存器的惟一方法。
(3)寄存器寻址 此处的寄存器指R0~R7、累加器A、通用寄存器B、 数据指针寄存器DPTR和位累加位C(即进位标志位C)。 寄存器寻址是指在指令中将指定寄存器的内容作为 操作数。因此指定了寄存器就能得到了操作数。例如: MOV A,R0 此指令的功能是将R0中的内容送入累加器A中(如图 3-3所示),即 (A)←(R0) 如通用寄存器R0中的内容为80H,则执行该指令后, 累加器A中的内容为80H。
3 80C51单片机指令系统 单片机指令系统
3.1 概述
指令是计算机能够直接识别和执行的命令,一台计 算机所能执行的全部指令的集合称为指令系统。80C51系 列单片机完全继承了MCS-51的指令系统,共有111条指 令。
第三章 MCS-51单片机的寻址方式和指令系统

由此可把数据传送指令分成三部分
(一)内部数据传送(通用传送指令)
1.以A为目的操作数
MOV A,Rn MOV A,@Ri ;A← (Rn) ;A←((Ri))
双字节
11101rrr 1110011i
MOV A,direct ;A←(direct) 11100101 direct
MOV A,#data ;A←#data 例: MOV A,@R1 若(R1)=20H,(20H)=62H 结果:(A)=62H 11100100 data
指令MOVC A,@A+DPTR;执 行示意图
结果:(ACC)=64H
六、相对寻址
以当前PC的内容为基准,加上指令给出的 偏移量(rel)形成新的PC值(转移地址) 的寻址方式。
转移地址=目的地址 =当前(PC)+rel
目的地址=PC当前值十rel 目的地址=转移指令的PC值+2(或3)十rel 目的地址=转移指令地址+转移指令字节数+rel
单周期:64 双周期:45 四周期:2
若fosc=12MHz, 大多指令执行 仅1μs
按照指令的功能分5大类
一、数据传送类指令(29条) 二、算术运算类指令(24条) 三、逻辑操作类指令(24条) 四、控制转移类指令(17条) 五、位操作类指令 (17条)
在描述指令系统的功能时,常用符号介绍:
@——间址符号,如@Ri,@DPTR 13. / ——位操作数的前缀,表示对该位操作 数取反,如/bit。 14. (×)——由×寻址的单元中的内容。 15. ((X))——由X的内容作为地址的存 储单元的内容。 16. ← ——箭头右边的内容取代箭头左边的 内容。
12.
一、数据传送类指令(29条)
第3章 51单片机指令系统

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)。直接寻址单元在编程时就已 明确,而间接寻址单元是在程序运行中明确。
第3章 8086指令系统及汇编语言程序设计

图3-7 立即数寻址
第3章 8086指令系统及汇编语言程序设计
注意: (2)寄存器寻址方式 ● 寄存器寻址方式的指令操作在CPU 定义:操作数放在寄存器内,由指令直接给出某个 内部执行,不需要执行总线周期,执行速 寄存器的名字,以寄存器的内容作为操作数。寄存器可以 度快。 是16位的 AX、BX、CX、DX、SI、DI、SP、BP寄存器, ● 寄存器寻址方式既适用于指令的源 也可以是8位的 AH、AL、BH、BL、CH、CL、DH、DL 寄存器。 操作数,也适用于目的操作数,并且可同 时用于源操作数和目的操作数。 【例3-2】 MOV AX,CX ;(AX)←(CX) INC AL ;(AL)←(AL)+1 指令执行结果如图3-8 所示
图3-8 寄存器寻址
第3章 8086指令系统及汇编语言程序设计
(3)直接寻址方式 定义:操作数在存储器中,指令中直接给出操作数所在存 注意: 储单元的有效地址。有效地址( EA)也称为偏移地址,它代表 ●直接寻址方式的操作数所在存储单元的段地址一 操作数所在存储单元距离段首址的字节数。有效地址是一个无 般在数据段寄存器DS中。 符号的16位二进制数。 ●如果操作数在其他段,则需要在指令中用段超越 【例3-3】 前缀指出相应的段寄存器名。 ● VALUE是一种符号表示法,此内容将在伪指令中 MOV AH, [1234H ] ;将DS段中1234H单元的内容送给AH 给予讲解。 MOV AH ,VALUE ;将DS段中VALUE单元的内容送给AH ●在实地址方式下,物理地址=16*段地址(DS) MOV AX, [2100H] ;将DS段中2100H单元的内容送给AL, +偏移地址(EA) 2101H单元的内容送给AH MOV BX,ES:【2000H】 ;段超越,操作数在附加段。即 物理地址=(ES)*16+2000H
MSC-51指令系统和汇编语言

第三章指令系统和汇编语言在本章中,主要讲以下几个部分:(7h)①MCS-51单片机的指令的分类及格式;②单片机指令的寻址方式;③指令系统;一、MCS-51单片机的指令的格式及分类首先我们们复习一些概念:指令:是控制计算机进行各种操作运算的代码形式的命令(MCS-51有42种助记符33个指令功能共111条指令)。
程序:是人们为了完成某中预定的任务,将一系列指令、数据、地址按一定顺序排列而得到的一组指令。
机器码:计算机所能辨认的二进制代码,又称机器码或指令代码。
一种计算机有几十种甚至几百中指令,如果都用二进制代码,记忆、书写,编程都很不方便,且易出错。
Eg: MOV R0, #30H ;78H 30H助记符:能够代替每一条指令的特定的英文缩写符号称为助记符。
(指令-----助记符,一一对应)Eg: 传送指令--- MOVMCS-51的基本指令共111条。
1.指令的分类按指令所占的字节来分:(1) 单字节指令49条;格式:操作码、操作数(同在一个字节)(2) 双字节指令45条;格式:操作码+操作数(3) 三字节指令17条。
格式:操作码+操作数+操作数按指令的执行时间来分:(12MHz晶振:机器周期为1μs。
)(1) 1个机器周期(12个时钟振荡周期)指令64条1μs;(2) 2个机器周期(24个时钟振荡周期)指令45条2μs;(3) 乘、除两条指令的执行时间为4个机器周期(48个时钟振荡周期), 4μs 。
2. 指令格式助记符由操作码和操作数两部分组成。
例:ADD A, #50H ;ADD是操作码,A和#50H为操作数。
功能:将累加器A中的数与立即数50H相加,将结果送到累加器A中。
操作码:代表指令的功能,是指令功能的英文缩写。
操作数:代表指令的操作对象,一般有地址或数据。
3. 汇编语言指令格式汇编语言源程序:用助记符(操作码)、符号地址和标识符等书写的程序称之为汇编语言源程序。
汇编:汇编语言源程序在机器执行前必须先转换为相应的机器码方可被机器识别执行,这个过程称为翻译(汇编)。
汇编语言程序设计_第3章 80x86指令系统

3.3.2 算术指令
1. 加法
一般形式:
ADD dest, src ; dest = dest + src
ADC dest, src ; dest = dest + src + CF
INC
dest
; dest = dest + 1
语法格式:
ADD reg/mem, reg/mem/imm
ADC reg/mem, reg/mem/imm
movsx ax, al ; 等价于cbw movsx eax, ax ; 等价于cwde movsx eax, al ; 等价于顺序执行cbw与cwde
2019/8/26
80x86汇编语言程序设计
3.3.1 数据传送指令
(3)MOVZX 一般形式: MOVZX dest, src ; src零扩展为dest;386新增 语法格式: MOVZX reg16, reg8/mem8 MOVZX reg32, reg8/mem8/reg16/mem16
2019/8/26
80x86汇编语言程序设计
3.3.1 数据传送指令
5. 堆栈操作指令
80x86系统的堆栈具有如下特点: 堆栈是在内存的堆栈段中,具有“先进后出”的特点。 堆栈只有一个出入口,即当前栈顶。当堆栈为空时,栈顶和栈底指向同一内存单
元。 堆栈有两个基本操作:PUSH(进栈)和POP(出栈)。PUSH操作使栈顶向低地
INC
reg/mem
对标志位的影响:
ADD、ADC:按一般规则影响CF、OF、SF和ZF。 INC:不影响CF,其它同ADD。 说明:ADD与ADC的2个操作数必须类型匹配,且不能同时是内存操作数。
2019/8/26
第3章 80868088指令系统3(算术运算指令)PPT课件

INC SI
;(SI)+1
DEC CX
;(CX)-1
JNZ LL
;若(CX)0,则转LL
思考:若最高位有进位,如何改?
11
ADD/ADC指令对条件标志位(CF/OF/ZF/SF)的影响:
SF=
1 结果为负 0 否则
ZF=
1 结果为0 0 否则
CF=
1 0
和的最高有效位有向高位的进位 否则
OF= 1 两个操作数符号相同,而结果符号与之相反
无符号数 有符号数
0000 1000
8
+8
+1111 1101 10000 0101
结果5
+253 261 CF=1
+(-3) +5
OF=0
③ 有符号数溢出
0000 1000
8
+8
+0111 1101 +125 +(+125)
1000 0101 133
+133
结果-123
CF=0
OF=1
(补码表示)
2
• 两个8位数相加时有4种情况:
无符号数范围0~255 带符号数范围-128~127 ①无符号数和有符号数均不溢出
二进制相加 0000 1000 +0001 1110 0010 0110
无符号数加 8
+ 30 38
有符号数加 +8
+ (+30) +38
结果38
CF=0
OF=0
3
② 无符号数溢出
作用类似于C语言中的”--”操作符。
格式:DEC opr 操作:opr←(opr)-1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MOV 12H,DPH
;(12H)=67H
2012/3/9
第3讲 AT89S51单片机 指令系统
上一讲内容回顾
硬件组成 引脚功能 CPU 存储器的结构 并行I/O口 时钟电路与时序 复位操作与复位电路 低功耗节电模式
1
2
本讲内容
指令系统概述
8051 指令的寻址方式
MCS-51 指令系统介绍
本讲内容
13
3.2.3 寄存器寻址
指令选定的寄存器内容就是实际操作数,寄存器可为: R0~R7(由RS1、RS2两位的值选定工作寄存器区) A、B、DPTR
例如: MOV A, R0
;A ←(R0)
14
3.2.4 寄存器间接寻址
以寄存器中内容为地址,以该地址中内容为操作数的寻址方式。 间接寻址的存储器空间包括内部数据RAM和外部数据RAM。 能用于寄存器间接寻址的寄存器有R0,R1和DPTR。 在寄存器名称前面加一个符号@来表示寄存器间接寻址。
8
2
2012/3/9
本讲内容
指令系统概述
8051 指令的寻址方式
MCS-51 指令系统介绍
3.2 8051 指令的寻址方式
寻址方式:用何种方式寻找参与运算的操作数或 操作数的真实地址。
对于两操作数指令,源操作数有寻址方式,目的 操作数也有寻址方式,若不特别声明,后面讲到 的寻址方式均是指源操作数。
12
3
2012/3/9
3.2.2 直接寻址
指令直接给出操作数所在存储单元的地址,它紧跟在操作 码后。 此方式是访问片内特殊功能寄存器(SFR)的唯一方式( 80H ~ FFH),也可访问内部RAM的低128字节
例如: MOV MOV
A, 30H ; A ←(30H) 50H, 30H ;(50H)←((30H))
7
8051指令中所用符号说明
Rn —— R0~R7中的一个 #data —— 8位立即数 #data16 —— 16位立即数 direct —— 8位直接地址 @Ri—— R0或R1,可以间接寻址 @DPTR —— 可按DPTR中地址对外部存储器寻址 bit —— 8位位地址 addr11 —— 11位目标地址 addr16 —— 16位目标地址 rel—— 8位地址偏移量 $—— 当前指令的地址
控制转移类指令:
(17条)
位操作(布尔操作)类指令 (17条)
23
24
6
2012/3/9
3.3.1 数据传送指令(5种/29条)
内部存储器间传送:
(MOV — 16条)
外部数据存储器与累加器间传送:
(MOVX — 4条)
程序存储器向累加器传送:
(MOVC — 2条)
数据交换:
(XCH,XCHD,SWAP — 5条)
9
10
MCS-51单片机有七种寻址方式:
立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址(基址寄存器+变址寄存器间接寻址) 相对寻址 位寻址
11
3.2.1 立即寻址
指令直接给出一个操作数,它紧跟在操作码后,通常 称它为立即数(8位或16位)。
例如: MOV MOV
A, #30H ;A ← #30H DPTR, #8000H ;DPTR ← #8000H
MOV direct ,Rn
; direct ← (Rn) (n=0~7)
(11)内部RAM或SFR之间直接传送
MOV direct1,direct2 ; direct1 ← (direct2) (12)内部RAM内容送内部RAM或SFR
MOV direct,@Ri ; direct ← ((Ri)) (i=0,1)
A累加器。所有需要送入外部RAM的数据必需要通 过A送去,而所有要读入的外部RAM中的数据也必 需通过A读入。 内外部RAM的区别:内部RAM间可以直接进行数 据的传递,而外部则不行。
33
比如,要将外部RAM中某一单元(设为0100H单元 的数据)送入另一个单元(设为0200H单元),也必 须先将0100H单元中的内容读入A,然后再送到 0200H单元中去。
指令代码
23H
1002H
ALU
1025H
20
5
2012/3/9
3.2.7 位寻址
对位地址中的内容进行操作的寻址方式。可被寻址的位: 片内RAM的20H~2FH单元,位地址00H ~ 7FH; SFR中12个能被8整除的字节地址,位地址80H以上。
特点: 操作数是8位二进制数中的某位
例如: MOV C,00H; 位地址00H的内容给C SETB P1.0
此种寻址方式以DPTR或PC作基址寄存器,A作变址寄存器( 存放8位无符号数),两者相加形成16位程序存储器地址作 操作数地址。
特点: 操作数地址=基地址+地址偏移量 适用于读ROM中的固定数据,如查表等; DPTR/PC中的基地址常常是表格的起始地址,累加器中 存放偏移量rel。 例如:
MOVC A, @A+DPTR MOVC A, @A+PC
特点:操作数所指定的寄存器中存放的不是操作数本身, 而是操作数的地址。 例如:
MOV A, @R0 ;A ← ((R0)) MOVX A, @DPTR ;A ← ((DPTR))
15
MOV A ,@R0 操作示意图
片内RAM
R0 30H
A
34H
30H
34H
16
4
2012/3/9
3.2.5 变址寻址
特点: 这两条指令为单字节查表指令 DPTR、PC中存放被查表的起始地址
功能: 根据A中的数,查得表中对应值送入累加器A中。
35
应用举例 给出每条指令执行后的结果
DPH X667X7 DPL X112X2
MOV 23H,#30H MOV 12H,#34H MOV R0,#23H
;(23H)=30H ;(12H)=34H ;R0=23H
21
总结 寻址方式与相应的寻址空间
方式 寄存器 直接寻址 寄存器间址 立即数 基址加变址 相对寻址 位寻址
利用的变量 R0~R7,A,B,CY,
DPTR direct @R0,@R1,@SP @R0,@R1,@DPTR #data
@A+PC @A+DPTR
PC+rel
bit
使用的空间
片内RAM低128字节 特殊功能寄存器SFR
堆栈操作:
(PUSH,POP — 2条)
25
内部存储器间数据传送路径
Acc 累加器
Direct 直接寻址
@Ri 间接寻址
Rn 寄存器
#data 立即数
26
内部数据传送指令(16条)
特点:源操作数在内部,目的操作数也在 内部。
分四类介绍如下 以累加器A为目的 以Rn为目的 以直接地址为目的 以间接地址为目的
6
8051 指令格式
LOOP: MOV A,
R0 ;将R0的内容送A
[标号:]操作码 [目的操作数][,源操作数][;注释]
方括符[ ]表示可选项
标号代表指令所在地址,1-8个字母/数字,“:”结 尾
操作码就是指令功能助记符,指令实体
目的操作数
源操作数
注释,以 “ ; ” 开头
MOV A,@Ri
;A ← ((Ri)) (i=0,1)
28
7
2012/3/9
以Rn为目的字节的传送指令
(5)立即数送寄存器
MOV Rn,#data (6)累加器内容送寄存器
; (Rn) ← #data (n=0~7)
MOV Rn,A
;Rn ← (A) (n=0~7)
(7)内部RAM或SFR内容送寄存器
MOV Rn,direct
;Rn ← (direct) (n=0~7)
29
以直接地址为目的字节的传送指令
(8)立即数送内部RAM或SFR
MOV direct,#data
; direct ← #data
(9)累加器内容送内部RAM或SFR
MOV direct ,A
; direct ← (A)
(10)寄存器内容送内部RAM或SFR
储器地址中。
特点:
操作码中含有相对地址偏移量rel
目标地址=源地址+转移指令字节数rel
源地址=相对转移指令的始址
例如:
JNZ rel
;累加器A不等于零则转移
SJMP rel
19
如:SJMP 23H
程序存储区
1000H 80 1001H 23 1002H 30
当前PC …
…
1024H 47 1025H 45
; (DPTR) ← (A) ; A ← ((Ri)) (i=0,1) ; A ← ((Ri)) (i=0,1)
特点: 单字节指令 第1、2条指令可以在外部RAM 64K范围寻址; 第3、4条指令可以对外部RAM的第0页寻址; 寻址范围是0000H~00FFH。
32
8
2012/3/9
说明: 1.在51中,与外部存储器RAM打交道的只可以是
指令系统概述
8051 指令的寻址方式
MCS-51 指令系统介绍
3
4
1
2012/3/9
3.1 指令系统概述
指令——计算机或单片机能够识别和执行的命令。
指令系统——指令的集合或全体,因机器而异。
指令的三种表示形式
二进制形式——直接为CPU执行 16进制形式——阅读和书写 汇编形式——编写程序
45H X334X4 34H X334X4
MOV R7,12H MOV R1,#12H MOV A,@R0