2-2微型计算机指令系统80868088指令系统

合集下载

微型计算机原理-第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

微机原理指令系统的学习

微机原理指令系统的学习

;此时传送的操作数在数据段中,其偏移地址是 SI寄存器中的内容加上0200H 变址寻址可以有多种格式:
MOV AX, [BX+0A00H]
MOV AX, TAB[DI] 如:MOV AX, 0200H+[BX]
假设DS:3000H, BX: 1000H 则操作数所在地址:
高8位: 31201H 低8位: 31200H
存储器
格式:IN AL , PORT IN AX, PORT
功能:从PORT口输入数据到AL(AX)。
格式:OUT PORT , AL OUT PORT, AX
功能20:20/7/将17 AL(AX)中的内容从PORT口输出。
33
IN AL, 40H
OUT 40H , AL
8位
IN AX, 40H
功能: (OPRD2) OPRD1
•CPU内部寄存器之间数据的传送(除CS、IP)
•立即数传送至CPU内部的通用寄存器组
•CPU内部的寄存器(除CS、IP)与存储器(所有寻 址方式)之间
•能实现用立即数给存储单元赋值
2020/7/17
25
注意: • CS,IP不能作为目的操作数 MOV CS, AX • 两个段寄存器间不能直接传送 MOV SS, DS • 立即数不能直接传送给段寄存器 MOV DS,2000H • 内存单元间不能直接传送 MOV [SI], [2000H] • 立即数不能作为目的操作数 MOV 1000H, AX
而执行POP BX后,栈顶的物理地址是:
20190H+2H=20192H
2020/7/17
30
2020/7/17
31
3. 交换指令XCHG 格式:XCHG OPRD1, OPRD2

2_第3章 8086指令系统_加减运算指令比较指令52

2_第3章 8086指令系统_加减运算指令比较指令52
4
3.4.2 算术运算指令
算术运算指令涉及两种类型数据,即无符号数和有符号数 对加法指令和减法指令而言,无符号和有符号数可采用同
一套指令,其先决条件有两个: 一是参加的操作数必须同为无符号数或同为有符号数 二是要采用不同标志位来检查无符号数和有符号数的 运算结果是否溢出
而乘除运算指令则需要区分无符号数和有符号数
11 11
ADC指令的使用价值
主要用于由于数据较大(多字节),需要多次运算的加法 运算中。 例:有两个4字节的无符号数相加:
2D568F8CH+3C9E489BH=? 设 被加数存放在BUF1开始的存储区内
加数存放在BUF2开始的存储区内 要求和放回BUF1存储区 假设CPU进行8位的加法运算,为此将进行4次加法运算
.386
……
MOVZX AX, A
MOVZX BX, B
ADD
AX, BX
MOVZX BX, C
ADD
AX, BX
MOV
SUM, AX
;取第一个数,扩展0传送 ;取第二个数 ;加第二个数 ;取第三个数 ;加第三个数 ;保存三个数的和
20 20
[例] P,Q,R均为8位有符号数,求它们的和,送入TOTAL
这个问题的另一种方法:
MOV AL, A
;取第一个数
MOV AH, 0
;高8位清零,准备存放和的高8位
ADD AL, B
;加第二个数
ADC AH, 0
;如果有进位,存入AH
ADD AL, C
;加第三个数
ADC AH, 0
;如果有进位,加入AH
MOV SUM, AX ;保存三个数的和
19 19
这个问题的第三种方法:

第二章 80868088寻址方式和指令系统

第二章 80868088寻址方式和指令系统

(5)奇偶标志PF
用于反映运算结果中“1”的个数。如果“1”的个数为偶数,则OF被置1,否则OF被清0。
(6)辅助进位标志AF
在字节操作时,如发生低半字节向高半字节进位或借位;在字操作时,如发生低字节向高字 节进位或借位,则辅助进位标志AF被置1,否则AF被清0。
②状态控制标志
(1)方向标志DF
方向标志决定着串操作指令执行时,有关指针寄存器调整方向。 当DF为1时,串操作指令按减方式改变有关的存储器指针值, 当DF为0时,串操作指令按加方式 改变有关的存储器指针值。
其中:存储单元的物理地址是12345H, 标出的:两个重叠段的段值分别是:1002H和1233H, 在对应段内的偏移分别是2325H和0015H。
采用段值和偏移构成逻辑地址后,段值由段寄存器给出,偏移可由指令指针IP、堆栈指针SP 和其他可作为存储器指针使用的寄存器(SI、DI、BX和BP)给出,偏移还可直接用16位数给 出。
图中指令存放在代码段中,OP表示该指令的操作码部分 再例如: MOV AL,5 则指令执行后,(AL)=05H
MOV BX,3064H 则指令执行后, (BX)=3064H
2、寄存器寻址方式
操作数在CPU内部的寄存器中,指令指定寄存器号。
对于16位操作数数,寄存器可以是:
AX、BX、CX、DX、SI、DI、SP和BP等;
指令中不使用物理地址,而是使用逻辑地址,由总线接口单元BIU按需要根据段值和偏移自动 形成20位物理址。
3、段寄存器的引用
由于8086/8088CPU有四个段寄存器,可保存四个段值。所以可同时使用四个段值,但这四个 段有所分工。
在取指令的时候,自动引用代码段寄存器CS,再加上由IP所给出的16位偏移,得到要取指令 的物理地址。

第4章Intel 80868088指令系统

第4章Intel 80868088指令系统

物理地址=30000H+1150H=31150H
执行后: (AX)=5678H。
第四章 Intel 8086/8088指令系统
5. 相对基址变址寻址
特点:操作数的有效地址是一个基址寄存器与一个变址寄 存器的内容之和再加上8位或16位位移量。同样,当基址寄存器 为BX时,用DS作为段寄存器; 而当基址寄存器为BP时,则用 SS作为段寄存器。因此物理地址为 (SI) 8位 位移量 物理地址=(DS)×16+ (BX)+ + (DI) 16位 (SI) 8位 位移量 + 物理地址=(SS)×16+ (BP)+ (DI) 16位
执行后: (AX)=1234H, (BX)不变。
第四章 Intel 8086/8088指令系统
4.1.4 存储器寻址
操作数在存储器中。存储器是分段管理的, 要找到操作数, 必须指明操作数所在的段(段基址由段寄存器指明)及段内偏 移地址(以有效地址EA的形成方式指出)。 1. 直接寻址方式 特点:指令中直接给出操作数在段内的偏移量,段基址隐 含给出或用段前缀指明。该寻址方式适用于处理单个变量。
4.1.1 8086/8088的通用指令格式 机器语言指令是由二进制代码组成的。一条指令是由操作 码与操作数字段构成的,其一般格式为 操作码字段 + 操作数字段 操作码字段指明计算机所要执行的操作(即功能);操作 数字段指出在指令执行过程中所需要的操作数。 例如: ADD AX, BX
第四章 Intel 8086/8088指令系统
变址寄存器内容之和。 (SI) 物理地址=(DS)×16+ (BX)+ (DI) (SI) 物理地址=(SS)×16+ (BP)+ (DI) 适用表格或数组处理,表格或数组首地址可存放在基址寄存器中。

第3章 8086(8088)CPU指令系统

第3章 8086(8088)CPU指令系统
数据段 BX + SI 10H
20H 00H
00H 34H 12H
3000H:0000H
注: ◆基址因子BP访问默认为堆栈段 ◆不能同时取两个基址因子;也不 能同时去两个变址因子
16
+
3000H:3000H
AH
AL
第3章 8086/8088CPU指令系统
4.1.4 操作数寻址方式
●存储器寻址之相对基址加变址寻址(Base
9
第3章 8086/8088CPU指令系统
3.1.3 操作数寻址方式
4.1操作数寻址方式
所谓操作数的寻址方式,是在指令格式中怎样有效的表示出操 作数的存放位臵,CPU在执行该指令时,按照指令格式中的表示找 到并对数据进行存取。 1.立即寻址(Immediate Addressing) 立即寻址中的操作数作为指令的一 部分存放在代码段中,在取指阶段数据 随指令一起被取到CPU,这种数据在指 令格式中的直接表现为常数。 如:MOV AL,34H

2
第3章 8086/8088CPU指令系统
汇编语言指令或符号指令:用字母和其它一些符 号组成的“助记符”与操作数等表示的指令称为汇编 语言指令或符号指令。 例如: MOV AX, BX ; AX←BX 而其二进制代码(机器代码)为89D8H,就是 1000 1001 1101 1000 B 不易理解,不易记忆。助记符是MOV。
操作码
操作数
4
第3章 8086/8088CPU指令系统
3.1.1 8086/8088指令格式
4.1操作数寻址方式
8086/8088机器指令格式通常1-6个字节组成。典型的指令格式 由2个字节组成,如下图所示。
操作码 D W MOD REG R/M

《微型计算机系统原理及应用》课后答案_(第3版)清华大学出版社__杨素行

《微型计算机系统原理及应用》课后答案_(第3版)清华大学出版社__杨素行

第一章 微型计算机基础题1-1 计算机发展至今,经历了哪几代?答:电子管计算机、晶体管计算机、集成电路计算机、超大规模集成电路计算机、非冯诺伊曼计算机和神经计算机。

题1-2 微机系统由哪几部分组成?微处理器、微机、微机系统的关系是什么? 答:1、微机系统分硬件和软件,硬件包括CPU、存储器、输入输出设备和输入输出接口,软件包括系统软件和应用软件。

2、微处理器是指微机的核心芯片CPU;微处理器、存储器和输入输出设备组成微机;微机、外部设备和计算机软件组成微机系统。

题1-3 微机的分类方法包括哪几种?各用在什么应用领域中?答:按微处理器的位数,可分为1位、4位、8位、32位和64位机等。

按功能和机构可分为单片机和多片机。

按组装方式可分为单板机和多板机。

单片机在工业过程控制、智能化仪器仪表和家用电器中得到了广泛的应用。

单板机可用于过程控制、各种仪器仪表、机器的单机控制、数据处理等。

题1-4 微处理器有哪几部分组成?各部分的功能是什么?答:微处理器包括运算器、控制器和寄存器三个主要部分。

运算器的功能是完成数据的算术和逻辑运算;控制器的功能是根据指令的要求,对微型计算机各部分发出相应的控制信息,使它们协调工作,从而完成对整个系统的控制;寄存器用来存放经常使用的数据。

题1-5 微处理器的发展经历了哪几代?Pentium系列微处理器采用了哪些先进的技术?答:第一代4位或低档8位微处理器、第二代中高档8位微处理器、第三代16位微处理器、第四代32位微处理器、第五代64位微处理器、第六代64位高档微处理器。

Pentium系列微处理器采用了多项先进的技术,如:RISC技术、超级流水线技术、超标量结构技术、MMX技术、动态分支预测技术、超顺序执行技术、双独立总线DIB技术、一级高速缓冲存储器采用双cache结构、二级高速缓冲存储器达256KB或512KB、支持多微处理器等。

题1-6 何为微处理器的系统总线?有几种?功能是什么?答: 系统总线是传送信息的公共导线,微型计算机各部分之间是用系统总线连接的。

第4章 指令系统(二)

第4章 指令系统(二)
四川警安职业学院标准教案纸
课程名称 授课时间 教学目标 教学重点 教学难点 教学时数 教学内容: 第 4 章 8086/8088 寻址方式及指令系统(二) 计算机组成原理(第二十八讲) 任课教师 地点 多媒体 授课班级 1. 掌握跨段知识 2. 掌握 8086/8088 指令系统 1. 跨段应用 2. 8086/8088 指令系统 1. 数据传送指令 2. 乘法指令 3. 控制转移指令 讲授法、演示法、实践操 教学手 2节 教学方法 作法 段 陈 平 人数
4
执行的操作:(POTR)<-- AL (字节操作) (PORT+1,PORT)<-- (AX) (字操作) 短格式为: OUT DX,AL (字节操作) OUT DX,AX (字操作) 执行的操作:((DX))<-- AL (字节操作) ((DX)+1,(DX))<-- (AX) (字操作) 在 IBM PC 机里,所有 I/O 端口与 CPU 之间的通信都由 IN 和 OUT 指令来完成。其中 IN 完 成从 I/O 到 CPU 的信息传送,而 OUT 完成从 CPU 到 I/O 的信息传送。CPU 只能用累加器(AL 或 AX)接收或发送信息。外部设备最多可有 65536 个 I/O 端口,端口号(即外设的端口地址)为 0000~FFFFH。其中前 256 个端口(0~FFH)可以直接在指令中指定,这就是长格式中的 PORT, 此时机器指令用二个字节表示,第二个字节就是端口号。所以用长格式时可以在指令中直接 指定端口号,但只限于外设的前 256 个端口。当端口号≥256 时,只能使用短格式,此时,必 须先把端口号放到 DX 寄存器中(端口号可以从 0000~FFFFH), 然后再用 IN 或 OUT 指令来传送 信息,必须注意。这里的端口号或 DX 的内容均为地址,而传送的是端口中的信息,而且在用 短格式时 DX 的内容就是端口号本身,不需要由任何段寄存器来修改它的值。 输入,输出指令不影响标志位。 (3)XLAT(Translate)换码指令 格式为: XLAT OPR 或 XLAT 执行的操作:(AL)<-- ((BX)+(AL)) 3.地址传送指令 (1)LEA(Load effective addres)有效地址送寄存器指令 格式为: LEA REG,SRC 执行的操作: (REG)<-- SRC 指令把源操作数的有效地址送到指定的寄存器中。 (2)LDS(Load DS with Pointer)指针送寄存器和 DS 指令 格式为: LDS REG,SRC 执行的操作:(REG)<-- (SRC) (DS)<-- (SRC+2) 把源操作数指定的 4 个相继字节送到由指令指定的寄存器及 DS 寄存器中。该指令常指定 SI 寄存器。 (3)LES(Load ES with Pointer)指针送寄存器和 ES 指令 格式为: LES REG,SRC 执行的操作:(REG)<--(SRC) (ES)<--(SRC+2) 把源操作数指定的 4 个相继字节送到由指令指定寄存器及 ES 寄存器中。 该指令常指定 DI 寄存器。 以上三条指令指定的寄存器不能使用段寄存器,且源操作数必须使用除立即数方式及寄 存器方式以外的其它寻址方式。这些指令不影响标志位。 本组指令把变量的偏移地址(LEA)或段地址和偏移地址(LDS 和 LES)送给寄存器,以提供 访问变量的工具。 例 4.3.7: LEA BX,[BX+SI+0F62H] 如指令执行前:(BX)=0400H,(SI)=003CH 则指令执行后:(BX)=0400+003C+0F,(SP))<-- (SRC) (3) POP(Pop from the stack)出栈指令 格式为: POP DST 执行操作:(DST)<-- ((SP) + 1,(SP)) (SP) <-- (SP) + 2 这两条堆栈的进栈和出栈指令。堆栈是以“后进先出”方式工作的一个存储区,它必须 存在于堆栈段中,因而此段地址存放于 SS 寄存器中。它只有一个出入口,所以只有一个堆栈 指针寄存器 SP,SP 的内容在任何时候都指向当前的栈顶,所以 PUSH 和 POP 指令都必须根据 当前 SP 的内容来确定进栈或是出栈的存储单元,而且必须及时修改指针,以保证(SP)指向当 前的栈顶。 堆栈的存取必须以字为单位,所以 PUSH 和 POP 指令只能作字操作。它们可以使用除立即 数以外的其他寻址方式。指令也可以指定段寄存器作为操作数,但 POP 指令不允许用 CS 寄存 器。这两条堆栈指令不影响标志位。 例 4.3.3: PUSH AX 堆栈在计算机工作中起着重要的作用,如果在程序中要用到某些寄存器,但它的内容却 在将来还有用,这时就可以用堆栈把它们保下来,然后到必要时再恢复其原来的内容。例如: PUSH AX PUSH BX „ 其间程序用到 AX 和 BX 寄存器 „ POP BX POP AX 堆栈在子程序结构的程序及中断程序中也很有用,这将在以后加以说明。 (4) XCHG(Exchange) 交换指令 格式为: XCHG OPR1,OPR2 执行操作:(OPR1)<--> (OPR2) 其中 OPR 表示操作数。该指令的两个操作数中必须有一个在寄存器中,因而它可以在寄 存器之间或者在寄存器和存储器之间交换信息,但不允许使用段寄存器。指令允许字或字节 操作,且不影响标志位。 2.累加器专用传送指令 这组指令只限于使用累加器 AX 或 AL 传送信息,不影响标志位。 (1) IN(Input)输入指令 长格式为: IN AL,PORT (字节操作) IN AX,PORT (字操作) 执行的操作:(AL)<-- (PORT) (字节操作) (AX)<-- (PORT+1,PORT) (字操作) 短格式为: IN AL,DX (字节操作) IN AX,DX (字操作) 执行的操作:(AL)<-- ((DX)) (字节操作) (AX)<-- ((DX)+1,(DX)) (字操作) (2)OUT(Output)输出指令 长格式为: OUT PORT,AL (字节操作) OUT PORT,AX (字操作)

第三章 8086 8088指令系统

第三章 8086 8088指令系统

SI 1200
+)
6000 0 1200 61200 AX 33 44
61200H 61201H
存储器 . . . 44H 33H 数 据 段
. . .
图 3-5 寄存器间接寻址示意图
3.2.5 寄存器相对寻址
寄存器相对寻址——操作数在存储器中。由指令指定的地址寄存器的内容加上指令中
给出的一个8位或16位的地址位移量,即可得操作数的偏移地址。
SI AX AX AX AX AX
3.2.8隐含寻址
隐含寻址—— 操作数隐含在操作码中,在有些指令的操作数中,不仅包含了操作的性质,
还隐含了部分操作数的地址。如乘法指令 MUL,在这条指令中只须指明乘数的地址,而被乘数 已经乘积的地址是隐含且固定的。这种将一个操作数隐含在指令码中的寻址方式就称为隐含
立即数操作数: 所谓立即数指具有固定数值的操作数,不因指令的执行而发生变化 。立即数操作 数只能用作源操作数,而不能用作目标操作数。

寄存器操作数:
8086CPU的8个通用寄存器和4个段寄存器可以作为指令中的寄存器操作数,寄存
器操作数在指令中既可以作为源操作数,也可以用作目标操作数。 存储器操作数: 参加运算的数据是存放在内存中。
两单元的内容送到AX中。假设DS=2000H,则所寻找的操作数的物理地址为: 2000H×10H+3102H = 23102H, 指令的执行情况如图3-3所示
存储器 . . .
MOV操作码
02H 31H AH AL 23102H 23103H
图 3-3 直接寻址方式
代 码 段
. . . ×× ×× . . . 数 据 段
请注意:使用基址—变址方式时,不允许将两个基址寄存器或两个变址寄存器组合

微机复习资料2

微机复习资料2

10550H
CS
250A0H
右图所示。
操作数的物理地址为:
2EF00H
DS ES
250AH×10H+0204H= 252A4H
8FF00H
SS
堆栈及堆栈段的使用



内存中一个按FILO方式操作的特殊区域; 每次压栈和退栈均以字节为单位; SS存放堆栈段地址,SP存放段内偏移,SS:SP构 成了堆栈指针; 堆栈用于存放返回地址、过程参数或需要保护的 数据; 常用于响应中断或子程序调用。
控制标志:3个
TF—陷阱标志位(单步标志位、跟踪标志)。当该位 置1时,将使8086/8088进入单步工作方式,通常 用于程序的调试。 IF—中断允许标志位,若该位置1,则处理器可以响 应可屏蔽中断,否则就不能响应可屏蔽中断。 DF—方向标志位,若该位置1,则串操作指令的地址 修改为自动减量方向,反之,为自动增量方向。
曹 晶
1
主要内容:

8088/8086 CPU的结构及工作原理 系统总线
2
§2.1 微处理器概述
3
运算器
微处理器 存储器 I/O接口 总线 ALU 寄存器 控制器
硬件系统 微 型 计算机 系 统 软件系统
微 型 计算机 (主机)
外 设 系统软件 应用软件
键盘、鼠标 显示器 软驱、硬盘、光驱 打印机、扫描仪
10
串行工作方式:
CPU BUS
取指令 1
执行 1
存结果 1
取指令 2
取操 作数2执行 2 Nhomakorabea忙碌忙碌
忙碌
忙碌
1) CPU访问存储器(存取数据或指令)时要等待总线 操作的完成 2) CPU执行指令时总线处于空闲状态 缺点:CPU无法全速运行。 解决:总线空闲时预取指令,使CPU需要指令时能立 刻得到。 11

8086-8088 CPU的指令系统算术运算指令

8086-8088 CPU的指令系统算术运算指令

微机原理
OP1 OP2
运算器
F
(a)
OP1 OP2
运算器
F
(b)
微机原理
⑵ ADC 带进位加法指令 指令格式:ADC DST,SRC 执行操作:(DST)←(SRC)+(DST)+CF 影响的标志位:OF、SF、ZF、AF、PF、CF ⑶ INC 加1指令 指令格式:INC OPR 执行操作:(OPR)←(OPR)+1。 影响的标志位:OF、SF、ZF、AF、PF。
⑵ IDIV 带符号数除法指令
指令格式:IDIV SRC 执行操作:与DIV相同,但操作数必须是带符号数,商 和余数也均为带符号数,用补码表示
⑶ CBW 字节转换为字指令 格式:CBW 执行操作:将AL的符号位扩展到整个AH 若AL的符号位为0,则AH←00H 若AL的符号位为1,则AH←0FFH 对标志位的影响:不影响标志位
微机原理
3.乘法指令 ⑴ MUL 无符号数乘法指令 指令格式:MUL SRC 执行操作: 字节操作数 AX←AL×(SRC)。 字操作数 DX,AX←AX×(SRC)。 对标志位的影响:OF、CF ⑵ IMUL 有符号数乘法指令 指令格式:IMUL SRC 执行操作:字节操作数AX←AL×(SRC)
微机原理
5.十进制调整指令 ⑴压缩的BCD码调整指令 ① DAA 加法的十进制调整指令 指令格式:DAA 执行操作:AL←加法结果AL的内容调整到压 缩的BCD码格式 标志位的影响:SF、ZF、AF、PF、CF
例:MOV AL, 28H MOV BL, 68H ADD AL, BL DAA
微机原理
MOV AL,08H
AAD
AL= 44H
AH=0
微型计算机基本原理与接口技术

第3章 8086指令系统(最后有练习题)

第3章  8086指令系统(最后有练习题)


开 始
8086CPU的指令系统的基本指令

包括数据传送类指令、算术运算类指令、 位操作类指令、串操作类指令、控制转移 类指令、处理机控制类指令。后几节将分 别介绍这些指令的语句格式和功能。
3.1 8086的寻址方式

3.1.1 数据的寻址方式 3.1.2 程序转移地址的寻址方式 3.1.3 对端口的寻址方式
3.1.2 程序转移地址的寻址方式
用来确定转移指令及CALL指令的转向地址。
段内寻址
段内直接寻址 段内间接寻址 段间直接寻址 段间间接寻址
段间寻址
段内:转移指令与转向的目标指令在同一代码段 中,(CS)不变。
段间:转移指令与转向的目标指令在两个代码段中, (CS) 变化。
表示转移距离(称为位移量)的操作符:
返回本节
2 . 寄存器寻址


寄存器寻址方式的操作数在指令指明的寄 存器中。 汇编格式:R ,其中R表示寄存器名。 功能:操作数直接存放在寄存器R中。 例如:MOV AL,BL
【例3-2】下列程序执行后,(AX)=?,
(BX)=?
MOV AX,1234H
MOV BX,5678H
ADD AX,BX 执行:1234H→AX 5678H→BX (AX)+(BX)→AX 执行后:(AX)=68ACH,(BX)=5678H
3 . 直接寻址




特点:操作数在内存中。 汇编格式:①含有变量的地址表达式。 ②段寄存器名:[EA] 。 功能:指令下一字单元的内容是操作数的偏 移地址EA。 图形表示:
【例3-3】
寄存器和存储器内容为:(AX)=1212H, (DS)=3000H,(32000H)=45H, (32001H)=46H。 执行指令:MOV AX ,[2000H] 问执行后:(AX)=? Step1:计算地址DS*16+2000H=32000H Step2:找内容(32000H),(32001H) 所以执行后:(AX)=4645H

《计算机原理与接口技术》课后题答案

《计算机原理与接口技术》课后题答案

第2章微型计算机基础2.8 在执行指令期间,BIU能直接访问存储器吗?为什么?解:可以.因为EU和BIU可以并行工作,EU需要的指令可以从指令队列中获得,这时BIU预先从存储器中取出并放入指令队列的。

在EU执行指令的同时,BIU 可以访问存储器取下一条指令或指令执行时需要的数据。

2.9 8086与8088CPU的主要区别有哪些?解:主要区别有以下几点:①8086的外部数据总线有16位,而8088的外部数据总线只有8位。

②8086指令队列深度为6个字节,而8088的指令队列深度为4个字节.③因为8086的外部数据总线有16位,故8086每个总线周期可以存取两个字节.而8088的外部数据总线因为只有8位,所以每个总线周期只能存取1个字节.④个别引脚信号的含义稍有不同.2.10 解:(1)要利用信号线包括WR#、RD#、IO/M#、ALE 以及AD0~AD7、A8~A19。

(2)同(1)。

(3)所有三态输出的地址信号、数据信号和控制信号均置为高阻态。

2.11解:在每个总线周期的T3的开始处若READY 为低电平,则CPU在T3后插入一个等待周期TW。

在TW的开始时刻,CPU还要检查READY状态,若仍为低电平,则再插入一个TW 。

此过程一直进行到某个TW开始时,READY已经变为高电平,这时下一个时钟周期才转入T4。

可以看出,插入TW周期的个数取决于READY电平维持的时间。

2.14 解:通用寄存器包含以下8个寄存器:AX、BX、CX和DX寄存器一般用于存放参与运算的数据或运算的结果。

除此之外:AX:主要存放算术逻辑运算中的操作数,以及存放I/O操作的数据。

BX:存放访问内存时的基地址。

CX:在循环和串操作指令中用作计数器。

DX:在寄存器间接寻址的I/O指令中存放I/O地址。

在做双字长乘除法运算时,DX与AX合起来存放一个双字长数。

SP:存放栈顶偏移地址。

BP:存放访问内存时的基地址。

SP和BP也可以存放数据,但它们的默认段寄存器都是SS。

微型计算机原理及应用课后答案侯晓霞

微型计算机原理及应用课后答案侯晓霞

CH01微型计算机概述习题与思考题1.微型计算机由哪些部件组成?各部件的主要功能是什么?解答:微机系统微型计算机系统软件外围设备:打印机、键盘、CRT 、磁盘控制器等微处理器(CPU )系统总线:AB 、CB 、DB (功能:为CPU 和其他部件之间提供数据、地址 和控制信息的传输通道)存储器:只读存储器(ROM )、随机存储器(RAM )(功能:用来存储信息)输入/输出(I/O )接口:串/并行接口等(功能:使外部设备和微型机相连)算术逻辑部件(ALU )累加器、寄存器控制器操作系统(OS )系统实用程序:汇编、编译、编辑、调试程序等(注:CPU 的功能--①可以进行算术和逻辑运算;②可保存少量数据; ③能对指令进行译码并执行规定的动作; ④能和存储器、外设交换数据;⑤提供整修系统所需要的定时和控制;⑥可以响应其他部件发来的中断请示。

)2.8086/8088 CPU 由哪两局部组成?它们的主要功能各是什么?是如何协调工作的?解答:微处理器(CPU )总线接口部件(BIU ):负责与存储器、I/O 端口传送数据执行部件(EU ):负责指令的执行协调工作过程:总线接口部件和执行部件并不是同步工作的,它们按以下流水线技术原那么来协调管理:① 每当8086的指令队列中有两个空字节,或者8088的指令队列中有一个空字节时,总线接口部件就会自动把指令取到指令队列中。

② 每当执行部件准备执行一条指令时,它会从总线接口部件的指令队列前部取出指令的代码,然后用几个时钟周期去执行指令。

在执行指令的过程中,如果必须访问存储器或者输入/输出设备,那么,执行部件就会请求总线接口部件进入总线周期,完成访问内存或者输入/输出端口的操作;如果此时总线接口部件正好处于空闲状态,那么,会立即响应执行部件的总线请求。

但有时会遇到这样的情况,执行部件请求总线接口部件访问总线时,总线接口部件正在将某个指令字节取到指令队列中,此时总线接口部件将首先完成这个取指令的操作,然后再去响应执行部件发出的访问总线的请求。

第3章80888086指令系统(老师用的课件哦)

第3章80888086指令系统(老师用的课件哦)

第3章 8088/8086指令系统
图3.5 变址寻址示意图
第3章 8088/8086指令系统
例:MOV AX,200AH[SI];或(AX)←
[(DS)*16+(SI)+200AH
EA=(SI)
+200AH,SI为变址寄存器,200AH为16位的位移量。
图3.6为用BP寄存器进行变址寻址时的示意图。
第3章 8088/8086指令系统
3.存储器操作数 存储器操作数是把操作数放在存储器单元中。对这 类操作数,在指令中必须给出存储器的地址。存储器 的实际地址(也称物理地址)是由指定的段基址和段内地 址偏移量(也称为有效地址EA)所决定的。由于段基址 相对很少改变,故一般预先予以指定,以后通过隐含 方法使用,即只要段基址未改变,其在汇编指令中便 不再出现。此时,只给出有效地址EA(以各种寻址方式 给出)。
第3章 8088/8086指令系统
3.2 8088/8086指令系统
3.2.1 数据传送指令 1 .数据传送指令MOV 指令格式:MOV OPRD1,OPRD2 MOV 为操作码。 OPRD1为目的操作数,可以是寄存器、存储器、
累加器。
第3章 8088/8086指令系统
OPRD2为源操作数,可以是寄存器、存储器、累 加器和立即数。
第3章 8088/8086指令系统
4.寄存器间接寻址
寄存器间接寻址的操作数类型为存储器操作数,与 直接寻址方式的区别是:该存储单元的16位段内偏移 地址,不是从指令代码中直接得到,而是从指令所指 定的寄存器中得到。能用于间接寻址的寄存器为SI、 DI、BX、BP。若以SI、DI、BX进行间接寻址,应由 数据段DS的内容作为段基址,间接寻址寄存器的内容 为段内偏移量,并指定形成操作数的物理地址。若以 寄存器BP间接寻址,则BP中的内容为段内偏移量,段寄 存器SS与之一起形成物理地址。寄存器间接寻址示意 图如图3.4所示。

微机原理与接口技术 课后答案 高等教育出版社 (徐惠民 着)

微机原理与接口技术 课后答案 高等教育出版社 (徐惠民 着)
答: 1011.1010B,十进制:11.625,十六进制:B.AH
1111101.11B,十进制:125.75,十六进制:7D.CH 1-7.(5487)10=( 0101010010000111)BCD= 1010101101111 B 1-8.设字长为 8 位,请写出下列数的原码、反码、补码和移码:
B.用于选择进行信息传输的设备
C.用于给存储器单元和I/O 设备接口电路的选择地址
D.以上都不正确
2-14.设当前 SS=C000H,SP=2000H,AX=2355H,BX=2122H,CX=8788H,则
当前栈顶的物理地址是多少?若连续执行 PUSH AX,PUSH BX,POP CX 3 条指令后,堆
定是否插入Tw 。
A.T2 B.T3
C.T3 下降沿 D. T2 上升沿
2-8.8086/8088 系统中为什么要有地址锁存器?需要锁存哪些信息?
答:
因 8086/8088 系统中地址线、数据线是复用的,所以要有地址锁存器锁存 T1 状态输出
的地址。8086 系统锁存 20 位地址及 BHE 信号, 8088 系统锁存 20 位地址。
在指令执行过程中利用eu分析指令操作码和执行指令时不占用总线操作时间的特点biu自动地通过总线读取存贮器中的指令码存入biu指令队列从而使biu与eu并行工作提高cpu执行指令的速度
第 1 章 微型计算机系统概述
习题
1-1.微型计算机包括哪几个主要组成部分,各部分的基本功能是什么? 答: 微型计算机由 CPU、存储器、输入/输出接口及系统总线组成。 CPU是微型计算机的核心部件,一般具有下列功能:进行算术和逻辑运算。暂存少量 数据。对指令译码并执行指令所规定的操作。与存储器和外设进行数据交换的能力。提供整 个系统所需要的定时和控制信号。响应其他部件发出的中断请求;总线是计算机系统各功能 模块间传递信息的公共通道,一般由总线控制器、总线发送器、总线接收器以及一组导线组 成;存储器是用来存储数据、程序的部件;I/O接口是微型计算机的重要组成部件,在CPU 和外设之间起适配作用。 1-2.CPU 执行指令的工作过程。 答: 取指令、执行指令。 指令执行的基本过程: (1)开始执行程序时,程序计数器中保存第一条指令的地址,指明当前将要执行的指令 存放在存储器的哪个单元。 (2)控制器:将程序计数器中的地址送至地址寄存器MAR,并发出读命令。存储器根 据此地址取出一条指令,经过数据总线进入指令寄存器IR。 (3)指令译码器译码,控制逻辑阵列发操作命令,执行指令操作码规定的操作。 (4)修改程序计数器的内容。 1-3.果微处理器的地址总线为 20 位,它的最大寻址空间为多少?
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• MOV AX , DATA • MOV DS , AX
• MOV AX , DS • MOV ES , AX
• 对于CS和IP,通常不要求用户利用传送指 令改变其中的内容。但是CS可以作为源操 作数
• 例2.1
• [例2.2]传送200个字节到内存中另一个数据区

MOV SI , OFFSET BUFFER1
• (2)OUT • 指令格式 OUT port , acc • OUT DATA8 , AL • OUT DATA8 , AX • OUT DX , AL • OUT DX , AX
• 例2.5
• 3、目标地址传送指令
• 把地址指针写入寄存器或寄存器对的指令, 可以用来写入近地址指针和远地址指针
– 寄存器(通用数据寄存器、地址指针、变址寄 存器)
– 段寄存器(CS例外,PUSH CS是合法,POP CS指令是非法的)
– 存储器
• 必须是字操作(16位),推入或弹出堆栈 是寄存器操作数,应是16位。如果是存储 器操作数,应是2个地址连续的存储单元。
• PUSH AX
• PUSH BP
• PUSH DATA[SI]
• 2、输入输出指令 • 数据都必须在累加器AX(字)或AL(字节)中 • (1)IN • 指令格式 IN acc , port • IN AL , DATA8
• IN AX , DATA8 • DATA8是8位立即数,最多允许寻址256个端口
(0~0FFH) • IN AL , DX
• IN AX , DX • 端口地址16位 0~0FFFFH
• PUSH和POP通常成对出现 • P67最上面一段程序
• PUSH • PUSH • POP • POP
AX BX AX BX ×
• 除了堆栈指针SP以外,通常基址指针寄存 器BP涉及的段寄存器也是SS。可以用BP 寄存器,使用基址寻址指令来访问堆栈中 的内容。
• 例2.3
• (3)XCHG • 指令格式 XCHG dest , src • 各自均可以是寄存器或存储器,但不能二
• SS=9000H,堆栈段最大64KB
• 图2.8
• 图2.9
• 图2.10
• 堆栈的用途
– 调用子程序(或过程)或发生中断时用推入堆 栈的办法保护断点的地址
– “先进后出”特点 子程序嵌套
– 在较复杂的程序中,当寄存器不够用而需要将 同一个寄存器存放2个以上的参数时,利用堆 栈作为缓冲器。例如,用CX同时作为两重循环 嵌套的计数器,可将外循环计数存入CX,当内 循环开始时将CX中的外循环计数推入堆栈,把 内循环计数写入CX,内循环完成时再将外循环 计数从堆栈弹出到CX中。
第2章 微型计算机指令系统
§2.2 8086/8088指令系统
• 由于大多数人在实际工作中使用较多的是 汇编指令,而不是指令的机器码,因此在 下面的叙述中,多数情况下只列出指令的 汇编形式(助记符)
• 表2.4
• 一、数据传送指令 • 最频繁的指令 • 各种实用程序,不难发现使用了大量的传送指令,
• 区别 • LEA • MOV
BX , BUFFER BX , BUFFER
• 与MOV BX , OFFSET BUFFER效果 相同
• POP
DI
• POP
ES
• POP
ALPHA[BX]
• PUSH 56 ×
• 堆栈在内存中所处的段称为堆栈段,其段地址存放 在SS内
• 从堆栈中读写数据有2个特点:
– 用PUSH存放数据时总是从高地址向低地址增长 – 先进后出
• 栈顶
SP
• 可用一条立即数传送指令给堆栈指针寄存 器SP赋值,从而确定栈顶在堆栈中的初始 位置 如MOV SP , 0E200H
需要将原始数据、中间结果、最终结果以及其他 各种信息在CPU的寄存器和存储器或外设端口之 间传送
通用数据传送指令
输入、输出指令
目标地址传送指令
标志传送指令
• 数据传送指令绝大多数对标志位不发生影 响,只有第4组中2条涉及标志寄存器 FLAGS的指令(SAHF和POPF)例外
• 1、通用传送指令 • (1)MOV • 指令格式 MOV dest , src • 特点:
• (1)LEA
• 指令格式 LEA reg16 , mem16
• LEA指令将一个近地址指针写入到指定的寄 存器。目标寄存器必须是一个16位通用寄 存器,源操作数必须是一个存储器。把源 操作数的有效地址即16位偏移地址传送到 目标寄存器
• LEA • LEA • LEA
BX , BUFFER AX , [BP][DI] DX , BETA[BX][SI]
• 图2.13
• 指令XLAT Hex_table实际上已经预先传送 到BX寄存器,写在XLAT指令中是为了汇编 程序用以检查类型的正确性。XLAT指令后 面可以不写操作数
• XLAT • XLAT src_table • XLATB ;B表示字节类型,不允许再写操作
数 • XLAT ES:src_table ;重设段寄存器为ES
– 既可传送字节,也可传送字 – 可用本章2.1节讨论过的各种寻址方式
– 可实现以下各种传送——寄存器与寄存器/存储 器之间
• P54指令例子
• 必须注意,不能用一条MOV指令实现以下 传送:
– 存储单元之间 – 立即数至段寄存器的传送 – 段寄存器之间的传送
• MOV AX , MEM1 • MOV MEM2 , AX

MOV DI , OFFSET BUFFER2

MOV CX , 200
• NEXT:MOV AAL

INC SI

INC DI

DEC CX

JNZ NEXT
• (2)PUSH POP • 指令格式
• PUSH src
• POP dest • PUSH和POP指令的操作数可能有3种情况:
者同时为存储器,不能在存储器与存储器 之间交换 • 段寄存器的内容不能参加交换 • 字节|字
• XCHG BL , DL
• XCHG AX , SI
• XCHG COUNT[DI] , AX
• (4)XLAT • 指令格式 • XLAT src_table • ;(AL)←((BX)+(AL)) • 例2.4
相关文档
最新文档