第四章 8086指令系统(改)PPT课件

合集下载

微型计算机原理-第4章(4)微机原理与接口技术(第三版)(王忠民)

微型计算机原理-第4章(4)微机原理与接口技术(第三版)(王忠民)

第四章 80x86 指令系统—累加器专用指令
⑴ 输入指令 ①直接寻址的输入指令 指令格式及操作:
IN acc, port ;(acc) ←(port)
②间接寻址的输入指令
指令格式及操作:
IN acc, DX
;(acc) ←((DX))
第四章 80x86 指令系统—累加器专用指令
⑵ 输出指令
①直接寻址的输出指令 指令格式及操作:
第四章 80x86 指令系统—通用数据传送指令
说明: *堆栈按后进先出原则组织。 *堆栈操作以字为单位进行。 *目的操作数dst不可以是CS。 *指令中的操作数不能是立即数。
第四章 80x86 指令系统—通用数据传送指令
例:已知(AX)=1234H,(BX)=5678H,分析下面程序段的执 行过程。
REG <=> REG/MEM • 段寄存器的内容不能参加交换
例: XCHG BX,[BP+SI]
第四章 80x86 指令系统—累加器专用指令
(二) 累加器专用指令 这类指令中的一个操作数必须是累加器。累加器操作数可以 是8位的,也可以是16位的。
第四章 80x86 指令系统—累加器专用指令 1.输入/输出指令
DI 1234H DS 4000H
DM
34H 2130H 12H 00H 2132H 40H
第四章 80x86 指令系统—地址传送指令
3. 地址指针装入ES指令 指令格式:
LES reg16, mem32 此指令的功能是将源操作数所对应的双字长的内存单元中的高 字内容(一般为16位段基址)送入ES,低字内容(一般为偏移地址) 送入指令所指定的寄存器中。例如:
LES DI, [2130H]
DI 1234H ES 4000H

微机原理 第四章 微型计算机指令系统

微机原理 第四章 微型计算机指令系统

例: 已知: DS=2000H; SI=1000H 指令: MOV [SI+disp],AX
青岛理工大学琴岛学院
寄存器间接相对寻址过程示意图
CPU
寄存器间接相对 SI=1000H
MOV [SI+20H] 程序 ,AX
CS 偏移1000H
DS
SS
ES
位移20H
青岛理工大学琴岛学院
寄存器相对寻址过程示意图
真正数据所在的地址
青岛理工大学琴岛学院
错误指令举例: 6)基址变址寻址: MOV [BX+CX],AX ; CX不能做变址寄存器 MOV [BX+BP],AX ; BP不能作为变址寄存器 操作数的有效地址 EA等于一个基址寄存器( BX或 MOV [BX+DI],ARRAY; BP)与一个变址寄存器( SI或DI)的内容之和;
总时间=基本执行时间+计算EA的时间+执行总线读/写周期的时间
指令的基本执行时间随指令类型的不同差异很大,访问存 储器既要执行总线的读/写周期,又要计算操作数的有效地址 EA,计算EA的时间又与指令的寻址方式有关。
青岛理工大学琴岛学院
4.2 8086/8088指令系统
数据传送类指令
算术运算类指令 位操作类指令 串操作类指令 控制转移类指令 处理器控制类指令
21000H 20 位 物 理 地 址 真正数据所在的地址 Memory DS … 20000H

78H 21000H 56H
青岛理工大学琴岛学院

4)寄存器间接寻址:
此方式的操作数存放在存储器单元中,指令给出的 16位寄存器值就是该操作数所在存储单元的EA。

例: 已知: (DS)=2100H,(DI)=2000H 指令: MOV AX,[DI] ;(AX) ((DI)) 注:使用BX、SI、DI,操作数在DS段;BP时在SS段 其中寄存器只能是BX、SI、DI、BP

第三章 8086的指令系统()PPT课件

第三章 8086的指令系统()PPT课件

7、串寻址(String addressing)
串寻址方式仅在8086的串指令中 使用。规定源操作数的逻辑地址为 DS:SI;目的操作数的逻辑地址为 ES:DI。当执行串指令的重复操作时, 根据设定的方向标志(DF),SI和 DI会自动调整。
8、I/O(输入/输出)端口寻址 (I/O port addressing)
2、MOV数据传送指令
其格式为:
MOV 目的操作数,源操作数
目的操作数和源操作数均可采用不 同的寻址方式,但两个操作数的类 型必需一致。
二、寻址方式介绍
1.立即寻址(Immediate addressing) 操作数就在指令中,紧跟在操作码后
面,作为指令一部分存放在内存的代 码段中,这种操作数称为立即数。
1、通用数据传送指令
1)、MOV 传送指令 指令格式为: MOV 目的 ,源
2)PUSH 进栈指令
指令格式为:PUSH 源操作数 其操作过程是: a、SP-1,
指示堆栈中可以存放数据的位置,存源 操作数的高8位; 。
3)POP 出栈指令
指令格式为:POP 目的操作数
一、8086的操作码
指令由操作码和操作数(地址码) 组成。8086的指令长度是可变的,一 条指令一般由1-6个字节组成(加上 前缀字节,最长可为7字节)。
二、8086指令中寄存器的编码
8086指令中通常使用一个或两个 操作数,在少数指令中有隐含的第三 个操作数。
三、指令中的操作数
1、单指令操作数
当操作数在外部设备时,使用I/O指令。 此时有两种不同的寻址方式访问I/O端口。 (1) 直接端口寻址方式。 (2) 采用寄存器间接寻址方式 (3) 输入指令中目的操作数可为AL或
AX;输出指令中源操作数可为AL或AX。 例:

48086CPU指令系统

48086CPU指令系统
• 不能使用段寄存器
XCHG DS,ES XCHG AX,DS XCHG DS,[ BX ] • 不能使用双存储器 XCHG [ BX ],[ SI ] • 不能使用立即数 XCHG AX,2000H XCHG 20H,BL
《例》用 MOV、PUSH,POP、XCHG 指令 完成两寄存器AX、BX 中数据的交换
• 指令格式

指令功能
OPR1、OPR2 两个操作数间交换数据
数据传送类指令
XCHG指令的应用范围
• 通用寄存器与通用寄存器间交换数据
XCHG AX,BX XCHG DL,CH • 通用寄存器与存储器间交换数据 XCHG AX,[ BX ] XCHG [ SI ],AL
数据传送类指令
XCHG指令的 禁用情况
通用传送指令 PUSH、POP 中 src、dst 操作数的使用
• 为通用寄存器、段寄存器操作数
PUSH AX、PUSH ES POP DS、 POP BX • 为存储器操作数 PUSH [ 2000H ]、PUSH [ BX ] POP [ BX ]、 POP [ 1000H ]
通用传送指令PUSH、POP中 src、dst 操作数的禁用
数据传送类指令
指令 LEA 与 LDS,LES 的区别
• LEA src
scr 表示存储器地址本身
• LDS r,src
LES r,src src 表示存储器地址中的值
地址传送指令的比较
已知:DS=09A0H,BX= 0048H
LEA DI,[BX] → 执行后:DI=0048H 等价于 MOV DI,OFFSET [BX] LDS DI,[BX] → 执行后:DI=003EH DS=0816H LES DI,[BX] → 执行后:DI=003EH ES=0816H Memory

计算机微机原理8086指令

计算机微机原理8086指令
8086从功能上分成两大部分: 总线接口单元BIU(Bus Interface Unit) 执行单元EU (Execution Unit)
7
总线接口单元BIU (Bus Interface Unit)
负责8086CPU与存储器和I/O设备 功能: 间的信息传送。
8
执行单元EU (Execution Unit)
14
通用寄存器的名称与符号
① AX (Accumulator) --累加器
② BX (Base) --基址寄存器
③ CX (Count) --计数寄存器 ④ DX (Data) --数据寄存器 ⑤ SI (Source Index)是源变址寄存器
数据寄存器
⑥ DI (Destination Index)是目的变址寄存器
38
物理地址和逻辑地址的转换
由于段地址一般存放在段寄存器,所以物理地 址和逻辑地址的转换关系也可表示为: (段寄存器) (CS) 物理地址= (DS) (SS ) 左移4位 + 偏移地址
(ES)
逻辑地址的形式为 段寄存器:偏移地址
39
段寄存器
8086有4个16位专门存放段地址的段寄存器 CS--(Code Segment)(代码段)指明代码段的起 始地址 SS-- (Stack Segment)(堆栈段)指明堆栈段的起 始地址 DS-- (Data Segment)(数据段)指明数据段的起 始地址 ES-- (Extra Segment)(附加段)指明附加段的起 始地址 每个段寄存器用来确定一个逻辑段的起始地址,每种逻 辑段均有各自的用途
27
数据信息的表达单位

计算机中信息的单位 二进制位Bit:存储一位二进制数:0或1, 记做b 字节Byte:8个二进制位,D7~D0,记做B 字Word:16位,2个字节,D15~D0 双字DWord:32位,4个字节,D31~D0

第4章8086,8088微机汇编语言程序设计

第4章8086,8088微机汇编语言程序设计

2)段内偏移量(Offset) 它是标号与段起始地址之间相距的字节数,为一16位 无符号数。 3)类型(Type) 类型表示该标号所代表的指令的转移范围,分NEA R(近)与FAR(远)两种。NEAR类型的标号仅在 同一段内使用,用2字节指针给出转移的偏移量属性(即 只改变IP值,不改变CS值);而FAR类型的标号无此限 制,必须用4字节指针指出转移的段地址与段内偏移量。 当标号用作JMP或CALL等指令的目标操作数时,若 为段内转移或调用则采用NEAR类型;若为段间转移或 调用则应当采用FAR类型。 JMP FAR PTR LINE
第4章 8086/8088汇编语言程序设计
汇编语言程序设计是开发微机系统软件的基本 功,在程序设计中占有十分重要的地位。
由于汇编语言具有执行速度快和易于实现对硬件的控 制等独特的优点,所以至今它仍然是用户使用得较多的程 序设计语言。特别是在对于程序的空间和时间要求很高的 场合,以及需要直接控制设备的应用场合,汇编语言更是必 不可少了。 由于汇编语言本身的特点,本章将选择目前国内广泛 使用的IBM PC机作为基础机型,着重讨论8086/8088汇编 语言的基本语法规则和程序设计的基本方法,以掌握一般 汇编语言程序设计的初步技术。
(1)立即操作数 立即操作数在指令中直接给出,不需要使用 寄存器,也不涉及访问数据区的操作,只能作为 源操作数。立即操作数是整数,可以是1字节或 2字节。在汇编语言中,立即操作数用常量(包 括数值常量和符号常量)以及由常量与有关运算 符组成的数值表达式表示。 如:MOV BX,1000+5*3 (2)寄存器操作数 通用寄存器AX、BX、CX、DX、BP、 SP、DI、SI以及段寄存器CS、SS、D S、ES都可以作为操作数。如:MOV BX,AX

第4章 指令系统(一)

第4章 指令系统(一)
格式:转移指令OPD;OPD为间接数据寻址方式
功能:(OPD)--> IP,(OPD+2)-->CS
例4.1.13:JMP DWORD PTR [BX]
物理地址的形成过程如图4-9。
图4-9物理地址形成过程
作业
P137 4.1 4.2 4.3 4.4题
教学反馈
操作数直接放在指令中,以立即数或常数的形式出现,它是紧跟在指令操作码后面的一个可用8位或16位二进制补码表示的有符号数。
汇编语言格式:N
功能:指令下一单元的内容为操作数N,如图4-1。
图4-1立即寻址方式指令在存储器中存储形式
指令指明的寄存器就是操作数的存放地址,操作数在指令指明的寄存器中。
汇编语言格式:R
如:MOV AX, 0指令中的0为立即数操作数。
(2)寄存器操作数:指令中所需的操作数放在指定的寄存器中。
如:MOV AX, BX指令中的BX寄存器为寄存器操作数。
(3)存储器操作数:指令中所需的操作数放在指定的存储器中的存储单元中,而指令中的操作数提供存储单元的偏移地址。
如:MOV AX, [1000H]指令中的[1000H]为存储器操作数。
教学手段
多媒体教学
教学内容:
第4章8086/8088寻址方式及指令系统(一)
汇编语言程序是由一条一条的指令组成的,指令相当于高级计算机语言(如C语言)中的语句,它是人们操纵和控制计算机的工具,让计算机按人们的意图工作,即我们常常所说的编写程序。指令系统是微处理器所能执行的指令的集合,类似于小孩子玩具的积木,我们所编写的程序由指令组成。指令系统与微处理器有密切的联系,不同的微处理器有不同的指令系统。在本章中我们主要讨论INTEL公司生产的8086/8088微处理器指令系统,它有100多条指令,每条指令最多由四部分组成:标号场、操作场、操作数场、注释场。

微处理器指令系统.ppt

微处理器指令系统.ppt

常用命令:
-A 汇编
-U 反汇编
-T 单步执行
-G 断点执行
-D 数据显示
-R பைடு நூலகம்存器
启动方法
Windows 2000/XP/NT下运行CMD\COMMAND\“命令提 示符”)
;reg reg/mem
寄存器与寄存器之间对换数据 寄存器与存储器之间对换数据 不能在存储器与存储器之间对换数据
换码指令XLAT
XLAT ;al←ds:[bx+al]
将BX指定的缓冲区中、AL指定的位移处的
一个字节数据取出赋给AL
tab 00H
tab db 0,1,4,9,15,25;定义DS段数据 Mov bx,offset tab(lea bx,tab)
FFFDFHH
高地址
堆栈操作的特点
堆栈操作的单位是字,进栈和出栈只对字量 字量数据从栈顶压入和弹出时,都是低地址字
节送低字节,高地址字节送高字节 堆栈操作遵循先进后出原则,但可用存储器寻
址方式随机存取堆栈中的数据 堆栈段是程序中不可或缺的一个内存区,常用

临时存放数据 传递参数 保存中断断点、中断现场
8086/8088指令系统
指令主要种类 指令功能 指令格式 指令的寻址方式、执行时间 指令对标志位的影响 使用指令的注意事项
2.3数据传送类指令
数据传送是计算机中最基本、最重要的一种操 作,传送指令也是最常使用的一类指令
传送指令把数据从一个位置传送到另一个位置 除标志寄存器传送指令外,均不影响标志位 重点掌握
MOV指令-段寄存器传送
mov [si],ds mov ax,ds mov es,ax
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

× MOV AX, BL
; 字长不同
× MOV ES: AX, DX ; 寄存器与段无关
指令操作例:MOV SI,AX ; SI (AX) 指令执行前:(AX)=2233H 指令执行后:(AX)=2233H,(SI)=2233H
AX
2233H
SI
四、 寄存器间接寻址
操作数的偏移地址(有效地址EA)放在寄存器中 只有SI、DI、BX和BP可作间址寄存器
高级语言 面向问题或面向过程的独立于具体机器的语言。
特点:语言规范,可移植性强,内部操作过程比较 复杂,执行时间长。
二、汇编语言指令的构成
每条指令由操作码和操作数两部分组成
目的

说明要执行的 操作对象,可以 是什么操作 有0个、1个或2个
指令举例:
MOV AX , BX
操作码 操作数 ADD AX,[SI+6] INC [BX] HLT
+
8位 16位
位移量
(DI)
(BX) (BP)
EA = (SI)
(DI)
以BX、SI、DI间接寻址,默 认的段寄存器为DS ;以 BP 间接寻址时,默认的段寄存
例: MOV AX, [BX] 器为SS 。
MOV CL, [DI]
错误例 :
× MOV AX, [DX]
× MOV CL, [AX]
寄存器间接寻址过程示意图
MOV [BX],CL ( 设BX原值为2010H)
寻找操作数的地址
寻找要执行的下一条指令的地址
在8086指令系统中,说明操作数所在地址
的寻址方式可分为8种:
①立即寻址
⑤ 寄存器相对寻址
②直接寻址
⑥基址-变址寻址
③寄存器寻址
⑦基址-变址相对寻址
④寄存器间接寻址 ⑧隐含寻址
一、立即寻址
操作数(为一常数)直接由指令给出 (此操作数称为立即数)
三、汇编语言指令格式
[标号:] 助记符[操作数,操作数][;注释] 标号:给存放指令的存储单元地址所起的名称。 标号的组成字符:字母A~Z;数字0~9;特殊字符:?·﹩@ — ●数字不能用作第一个字符 ●标号最长为31个字符 ●圆点只能做第一个字符 ●标号后必须加“:” 助记符:系统提供的有关指令的助记符 操作数:是指令执行的对象,可根据指令功能可不带,可带1个
立即寻址只能用于源操作数 例:
MOV AX, 1C8FH MOV BL,43H
错误例:
× MOV 2A00H, AX ; 错误!
指令操作例:MOV AX,3102H ; AX 执行后,(AH) = 31H,(AL) = 02H
3102H
立即寻址指令在存 储器中的存放形式
AX AH AL
存储器
操作码
Bit 19
43 0
DS(BX、SI、DI默认段) 0000
ES
SS(BP的默认段)
0000 0000
+)BX:
CS
0000
0010 0000 0001 0000
20 位 物 理 地 址
Memory
… … ××
五、 寄存器相对寻址
EA=间址寄存器的内容加上一个8/16位的位移量
(BX)
EA =
(BP) (SI)
存储器
指令执行后:(AX) = ABCDH
AH AL
MOV操作码 代
02H

31H

..
23102H
CDH ABH
数 据 段
三、 寄存器寻址
操作数放在某个寄存器中
源操作数与目的操作数字长要相同
寄存器寻址与段地址无关
例:
MOV AX, BX
MOV [3F00H], AX
MOV CL, AL
错误例:
MOV AX , [2A00H] MOV DX , ES: [2A00H] MOV SI , TABLE_PTR
指令操作例:MOV AX,[3102H]
AL (3102H) , AH (3103H)
如果(DS)=2000H, (23102H) = CDH, (23103H) = ABH
则操作数的物理地址为: 20000H+3102H = 23102H
用汇编语言编写的源程序在输入计算机后,需要将 其翻译成目标程序,计算机才能执行相应指令,这个 翻译过程称为汇编,完成汇编任务的程序称为汇编程序。 汇编程序 (1)将源程序翻译成目标程序 的作用: (2)提示错误
(3)自动分配各类存储区域 (4 )自动进行各种进制到二进制的转换 (5)自动进行字符到ASCII码的转换 (6)计算表达式的值

低8位
即 数
高8位
代 码 段
MOV操作码

02H


31H
二、 直接寻址
指令中直接给出操作数的16位偏移地址 偏移地址也称为有效地址(EA, Effective Address)
默认的段寄存器为DS,但也可以显式地指定其他 段寄存器——称为段超越前缀 偏移地址也可用符号地址来表示,如ADDR、VAR 例:
• 机器语言 用机器码表示,例如B8H、C3H。
• 汇编语言 汇编语言是一种面向CPU指令系统的程序设计语言, 它采用指令系统的助记符来表示操作码和操作数, 用符号地址表示操作数地址,因而易记、易读、易 修改,给编程带来很大方便。

用指令助记符表示机器码,例如对应于机器码B8H、 C3H的助记符为MOV AX,BX 。 CPU不同,机器码不同,助记符也不同。
第四章 8086指令系统
4.1 汇编语言和汇编程序的基本概念 4.2 8086寻址方式 4.3 8086指令系统
2020/7/17
1
整体 概述
一 请在这里输入您的主要叙述内容

请在这里输入您的主要 叙述内容
三 请在这里输入您的主要叙述内容
§4.1 汇编语言及汇编程序的基本概念
一、计算机语言的分类
或2个,两个操作数中间用“,”分开。 注释:可有可无,为方便阅读程序而加的说明,以“;”开始。
四、操作数的类型
1、立即数(常数)
取值范围如下表:
8位 无符号数 00H-FFH(0-255)
16位 0000H-FFFFH(0-65535)
带符号数 80H-7FH(-128~127) 8000H-7FFFH(-32768~32767)
2、寄存器操作数
放在8个通用寄存器或4个段寄存器中的操作数
AX
16 位
AH
AL16 位BX NhomakorabeaBH
BL
16 位
CX
CH
CL
16 位
DX
DH
DL
3、存储器操作数
存储器操作数
类型 存储单元个数
字节
1

2
双字
4
存储单元的物理地址 = 段基地址*16 + 偏移地址
4.2 8086的寻址方式
寻址方式——寻找操作数的方法
相关文档
最新文档