8086微处理器及系统
第2章-8086微处理器part2

8086 CPU在最小模式中引脚定义
M/#IO:Memory/Input & Output,三态输出
存储器或I/O端口访问信号 。指示8086的访问对象,发 给MEM或I/O接口。 M/# IO为高电平时,表示 当前CPU正在访问存储器;
M/# IO 为低电平时,表 示当前CPU正在访问I/O端 口
数据驱动器数据流向控制信 号,输出,三态。
在8086系统中,通常采用 74LS245、8286或8287作 为数据总线的驱动器,用 DT/#R信号来控制数据驱动 器的数据传送方向。 当DT/#R=1时,进行数据 发送; 当DT/#R=0时,进行数据 接收。
8086 CPU在最小模式中引脚定义
READY:准备就绪信号 由外部输入,高电平有效 ,表示CPU访问的存储器 或I/O端口己准备好传送 数据。 当READY无效时,要求 CPU插入一个或多个等待 周期Tw,直到READY信 号有效为止。
S3 0 1 0 1
当前正在使用的段寄存器 ES SS CS或未使用任何段寄存器 DS
8086 CPU在最小模式中引脚定义
#BHE/S7:高8位总线允许(Bus High Enable)
T1:指示高8位数据总线上的数据 是否有效 (#BHE:AD0)配合:00时读写字 ,01时读写奇地址字节,10时读写 偶地址字节 其他T周期:输出状态信号S7(S7 始终为逻辑1,未定义) DMA方式下,该引脚为高阻态。
最大模式引脚信号(续)
LOCK# :总线封锁(优先权锁定) 三态输出,低电平有效。 LOCK有效时表示CPU不允许其它总线主控者占用 总线。 ห้องสมุดไป่ตู้ 这个信号由软件设置。 • 当在指令前加上LOCK前缀时,则在执行这条 指令期间LOCK保持有效,即在此指令执行期 间,CPU封锁其它主控者使用总线。 在保持响应期间,LOCK#为高阻态。
微机原理第2章课后答案

第2章8086微处理器及其系统教材习题解答1. 8086 CPU 由哪两部分构成,它们的主要功能是什么?在执行指令期间,EU 能直接访问存储器吗,为什么?【解】8086CPU由执行部件(EU)和总线接口部件(BIU)两部分组成。
执行部件由内部寄存器组、算术逻辑运算单元(ALU)与标志寄存器(FR)及内部控制逻辑等三部分组成。
寄存器用于存储操作数和中间结果;算术逻辑单元完成16位或8位算术逻辑运算,运算结果送上ALU内部数据总线,同时在标志寄存器中建立相应的标志;内部控制逻辑电路的主要功能是从指令队列缓冲器中取出指令,对指令进行译码,并产生各种控制信号,控制各部件的协同工作以完成指令的执行过程。
总线接口部件(BIU)负责CPU与存储器、I/O设备之间传送数据、地址、状态及控制信息。
每当EU部件要执行一条指令时,它就从指令队列头部取出指令,后续指令自动向前推进。
EU要花几个时钟周期执行指令,指令执行中若需要访问内存或I/O设备,EU就向BIU 申请总线周期,若BIU总线空闲,则立即响应,若BIU正在取一条指令,则待取指令操作完成后再响应EU的总线请求。
2. 8086CPU与传统的计算机相比在执行指令方面有什么不同?这样的设计思想有什么优点?【解】8086 CPU与传统的计算机相比增加了指令队列缓冲器,从而实现了执行部件(EU)与总线接口(BIU)部件的并行工作,因而提高了8086系统的效率。
3. 8086 CPU 中有哪些寄存器,各有什么用途?【解】8086共有8个16位的内部寄存器,分为两组:①通用数据寄存器。
四个通用数据寄存器AX、BX、CX、DX均可用作16位寄存器也可用作8位寄存器。
用作8位寄存器时分别记为AH、AL、BH、BL、CH、CL、DH、DL。
AX(AH、AL)累加器。
有些指令约定以AX(或AL)为源或目的寄存器。
实际上大多数情况下,8086的所有通用寄存器均可充当累加器。
BX(BH、BL)基址寄存器。
第03-1章. 80868088微处理器及其系统

3.1.1、8086/8088CPU的内部结构
执行单元( Execute Unit ) 总线接口单元 ( Bus Interface Unit )
8088的内部结构
AH BH CH DH AL BL CL DL SP BP SI DI
16位
地址 加法 器
∑
20位
通用 寄存器
CS DS SS ES IP 内部暂存器
PA的书写方式:
段地址:段内偏移
如:1121H : 2200H=11210+2200=13410H
已知CS=1055H,DS=250AH,ES=2EF0H, SS=8FF0H,DS段有一操作数,其偏移地址=0204H, 1)画出各段在内存中的分布 2)指出各段首地址 10550H CS 3)该操作数的物理地址=?
2.地址加法器和段寄存器
BIU中的地址加法器用来实现逻辑地址到物理地址的变换 8086采用了 “段加偏移”的技术。
15 0 15 0
逻辑地址
段基值
3 0
偏移量
0000
各段寄存器分别来存放确定各段的 起始地址的16位段地址信息
寻址单元的16位偏移地址
Σ
19 0
物理地址
物理地址
左移4位后的段寄存器的内容同时 送到地址加法器进行相加
CH DH CL DL
地址 加法 器
∑
20位
CS DS SS ES IP 内部暂存器
16位
输入/输出 控制电路 外 部 总 线
1 2
8位
3 4
把EU的操作结果存储 标志寄存器 到指定的M或I/O口。
执行部件 (EU)
指令队列
总线接口部件 (BIU)
8086总线周期时钟周期

2. 总线接口部件 BIU 负责CPU与存储器、I/O设备之间传送数据、地址、 状态及控制信息。 组成:
● 4个段地址寄存器(CS、DS、ES、SS) ● 16位的指令指针寄存器IP(Instruction Pointer) ● 20位的地址加法器 ● 6字节的指令队列缓冲器 ● 总线控制逻辑
注意:一个存储单元的物理地址是惟一的,而它对应 的逻辑地址是不惟一的。
30
(3)指令指针寄存器IP—— 16位
功能:用来存放将要执行的下一条指令在代码段中的 偏移地址。在程序运行过程中,BIU自动修改 IP中的内容,使它始终指向将要执行的下一条 指令。
注意:程序不能直接访问IP,但是可通过某些指令修 改IP的内容。例如, 执行转移指令时,会将转 移的目标地址送入IP中,以实现程序的转移。
19
在8086存储空间中,把16字节的存储空间称作一内存节 (paragraph)。要求各个逻辑段从节的整数边界开始,即段 首地址低4位应该是“0”,把段首地址的高16位存放在段寄 存器DS或CS或SS或ES中。
00000H 00010H 00020H …… FFFF0H
20
允许段在整个存储空间浮动,即段与段之间可以 部分重叠、完全重叠、连续排列。在整个存储空间中 可设置若干个逻辑段。
地址指针自动增量;DF=1,表示地址指针自动减量。DF 可通过STD指令置位,也可通过CLD指令复位。
● IF(Interrupt Flag) 中断允许标志位 ----- 用于控制CPU是否允许响应可屏蔽中断请求。 IF=1,表示允许CPU响应可屏蔽中断请求。 IF=0, 表示禁止CPU响应可屏蔽中断请求。 IF可通过STI指令置 位(置1),也可通过CLI指令复位(清零)。
8086指令系统总结

8086指令系统总结8086是一种x86架构的微处理器,由Intel公司于1978年推出。
它是16位的,拥有20位的物理寻址能力,可以访问1MB的内存空间。
8086指令系统是其所支持的一系列指令集合,下面将对8086指令系统进行详细总结。
数据传输指令是8086指令系统中的基础指令之一,用于将数据从一个位置传输到另一个位置。
其中包括mov指令、xchg指令、push指令和pop指令等。
mov指令用于将数据从一个存储位置复制到另一个存储位置;xchg指令用于交换两个存储位置中的数据;push指令用于将数据压入栈顶;pop指令用于将栈顶的数据弹出。
算术运算指令是用于进行各种算术运算的指令。
8086支持包括加法、减法、乘法和除法等多种算术运算指令。
例如,add指令用于将两个操作数相加,sub指令用于将第二个操作数从第一个操作数中减去,mul指令用于将两个操作数相乘,div指令用于将第一个操作数除以第一个操作数,并将结果保存在指定的寄存器中。
逻辑运算指令用于进行逻辑运算,包括与、或、非、异或等运算。
例如,and指令用于对两个操作数进行按位与运算,or指令用于对两个操作数进行按位或运算,not指令用于对一个操作数进行按位非运算,xor指令用于对两个操作数进行按位异或运算。
控制转移指令用于控制程序的执行流程。
包括无条件转移指令、条件转移指令和循环指令。
无条件转移指令用于无条件地跳转到指定的地址,例如jmp指令;条件转移指令用于根据一些条件是否成立来进行跳转,例如je指令(跳转到指定地址,如果上一次比较操作相等);循环指令用于循环执行指定的指令块,例如loop指令。
I/O指令用于进行输入输出操作,包括从外部设备读取数据和将数据写入外部设备。
例如,in指令用于将输入端口的数据读取到指定的寄存器中,out指令用于将指定的寄存器中的数据写入到输出端口。
此外,8086还支持一些特殊的指令,如访问标志寄存器的指令,控制指令(如hlt指令、nop指令)和字符串指令(如movsb指令、cmpsb指令)等。
微机原理课件第二章 8086系统结构

但指令周期不一定都大于总线周期,如MOV AX,BX
操作都在CPU内部的寄存器,只要内部总线即可完成,不 需要通过系统总线访问存储器和I/O接口。
2021/8/17
17
• 8086CPU的典型总线时序,充分体现了总 线是严格地按分时复用的原则进行工作的。 即:在一个总线周期内,首先利用总线传 送地址信息,然后再利用同一总线传送数 据信息。这样减少了CPU芯片的引脚和外 部总线的数目。
• 执行部件(EU)
• 功能:负责译码和执行指令。
2021/8/17
5
• 联系BIU和EU的纽带为流水指令队列
• 队列是一种数据结构,工作方式为先进先出。写入的指令 只能存放在队列尾,读出的指令是队列头存放的指令。
2021/8/17
6
•BIU和EU的动作协调原则 BIU和EU按以下流水线技术原则协调工作,共同完成所 要求的任务: ①每当8086的指令队列中有空字节,BIU就会自动把下 一条指令取到指令队列中。 ②每当EU准备执行一条指令时,它会从BIU部件的指令 队列前部取出指令的代码,然后译码、执行指令。在执 行指令的过程中,如果必须访问存储器或者I/O端口, 那么EU就会请求BIU,完成访问内存或者I/O端口的操 作; ③当指令队列已满,且EU又没有总线访问请求时,BIU 便进入空闲状态。(BIU等待,总线空操作) ④开机或重启时,指令队列被清空;或在执行转移指令、 调用指令和返回指令时,由于待执行指令的顺序发生了 变化,则指令队列中已经装入的字节被自动消除,BIU会 接着往指令队列装入转向的另一程序段中的指令代码。 (EU等待)
•CF(Carry Flag)—进位标志位,做加法时最高位出现进位或 做减法时最高位出现借位,该位置1,反之为0。
第二章 8086微处理器

第二章8086/8088微处理器及其系统结构内容提要:1.8086微处理器结构:CPU内部结构:总线接口部件BIU,执行部件EU;CPU寄存器结构:通用寄存器,段寄存器,标志寄存器,指令指针寄存器;CPU引脚及其功能:公用引脚,最小模式控制信号引脚,最大模式控制信号引脚。
2.8086微机系统存储器结构:存储器地址空间与数据存储格式;存储器组成;存储器分段。
3.8086微机系统I/O结构4.8086最小/最大模式系统总线的形成5.8086CPU时序6.最小模式系统中8086CPU的读/写总线周期7.微处理器的发展学习目标1.掌握CPU寄存器结构、作用、CPU引脚功能、存储器分段与物理地址形成、最小/最大模式的概念和系统组建、系统总线形成;2.理解存储器读/写时序;3.了解微处理器的发展。
难点:1.引脚功能,最小/最大模式系统形成;2.存储器读/写时序。
学时:8问题:为什么选择8088/8086?•简单、容易理解掌握•与目前流行的P3、P4向下兼容,形成x86体系•16位CPU目前仍在大量应用思考题1、比较8086CPU与8086CPU的异同之处。
2、8086CPU从功能上分为几部分?各部分由什么组成?各部分的功能是什么?3、CPU的运算功能是由ALU实现的,8086CPU中有几个ALU?是多少位的ALU?起什么作用?4、8086CPU有哪些寄存器?各有什么用途?标志寄存器的各标志位在什么情况下置位?5、8086CPU内哪些寄存器可以和I/O端口打交道,它们各有什么作用?6、8086系统中的物理地址是如何得到的?假如CS=2400H,IP=2l00H,其物理地址是多少?思考题1.从时序的观点分析8088完成一次存储器读操作的过程?2.什么是8088的最大、最小模式?3.在最小模式中,8088如何产生其三总线?4.在最大模式中,为什么要使用总线控制器?思考题1.试述最小模式下读/写总线周期的主要区别。
第二章-8086微处理器

答案:A
思考题
8086/8088的状态标志有 A)3 B)4 C)5 答案:D 个。 D)6
思考题
8086/8088的控制标志有 A)3 B)4 C)5 答案:A 个。 D)6
三、引脚信号和功能(图2-5 )
8086总线周期的概念: 为了取得指令或传送数据,就需要CPU的总线接 口单元(BIU)执行一个总线周期。 一个最基本的总线周期由4个时钟周期组成。 习惯上将4个时钟周期分别称为4个状态,即T1状 态、T2状态、T3状态和T4状态。 图2-17
2.方向标志DF(Direction Flag) 用于串操作指令中的地址增量修改(DF =0)还是减量修改(DF=1)。 STD使DF=1 CLD使DF=0
(三)标志寄存器-控制标志(续)
3.跟踪标志TF(Trap Flag) 若TF=1,则CPU按跟踪方式(单步方式) 执行程序,否则将正常执行程序。
思考题
指令队列的作用是 A)暂存操作数地址 。 B)暂存操作数
C)暂存指令地址
D)暂存预取指令 答案:D
思考题
8086的指令队列的长度是 A)4个 B)5个 C)6个 D)8个 字节。
答案: C
思考题
8088的指令队列的长度是 A)4个 B)5个 C)6个 D)8个 字节。
答案:A
思考题
第二章 8086/8088微处理器
8086/8088微处理器的结构 8086/8088典型时序分析
简 介
8086:16位微处理器 数据总线宽度16位:可以处理8位或16位数据 地址总线宽度20位:可直接寻址1MB存储单元和 64KB的I/O端口 8088:准16位处理器 内部寄存器及内部操作均为16位,外部数据总线8位 8088与8086指令系统完全相同,芯片内部逻辑结构、芯片引 脚有个别差异。 设计8088的目的主要是为了与Intel原有的8位外围接口芯片 直接兼容
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0000 0101 + 0001 0100 0001 1001
结果: AF=0
0000 0000 - 0000 0001 1111 1111
结果: AF=1
微型机原理与程序设计
PF, Parity Flag, 奇偶标志, 两数操作(算术或逻辑),结果的低8位中 含有1的位数是偶还是奇. 举例: 1000 0101 1010 1100 AND 1001 1101 1001 0111 1000 0101 1000 0100 结果: PF=1
微型机原理与程序设计
2.1 8086微处理器
标志寄存器长度为16位,其中9个位有定义。
零标志 符号标志 陷阱标志 中断标志 方向标志 溢出标志
微型机原理与程序设计
奇偶标志 辅助进位标志
进位标志
CF, Carry Flag, 进位标志, 两数相加,最高位向前的进位; 或两数相 减最高位向前的借位, 举例:
DS(数据段)
ES(附加段) SS(堆栈段)
微型机原理与程序设计
2.1 8086微处理器
8086 微处理器的引脚功能 8086 微处理器都使用+5.0V 电源电压,其允许偏差为±10%。8086 需要的最大 电源电流为360 mA。工作环境温度为0℃到70℃之间。此温度范围不够宽,不允许微 处理器工作在冬天或夏天的户外,但我们可得到具有扩展温度范围的8086微处理器。
微型机原理与程序设计
2.1 8086微处理器
2)专用寄存器 包括:IP, SP, FLAGS和段寄存器CS, DS, ES,SS。 IP(指令指针) IP 寻址代码段存储区内的下一条指令。指令指针指向程序的下一条指 令,用于微处理器在程序中顺序寻址代码内的下一条指令。指令指针 也可由跳转指令或调用指令修改。 SP(堆栈指针) SP寻址一个称为堆栈的存储区。通过这个指针存取堆栈存储器中的数 据,具体操作将在2.3节中介绍相关指令时进行说明。这个寄存器还可 以作为16位寄存器引用。 FLAGS(标志) FLAGS用于指示微处理器的状态并控制它的操作。
另外还有一种CMOS型微处理器,它只需要很小的电源电流,并且温度范围很宽。 80C86 属于CMOS 型,只需10mA 电源电流,而工作温度范围可达-40℃到+105℃。 8086 微处理器芯片采用双列直插式40 条引脚的封装结构,拥有20 条地址线和 16 条数据线。地址总线和数据总线的低16 位采用多路复用,4 条地址线与状态信号 线复用,复用的芯片引脚信号采取分时处理的方法。
ZF, Zero Flag, 零标志, 操作结果的为0则ZF为1. 举例:
1111 1111 +
进位 1
0000 0001 0000 0000
操作结果为0, ZF=1
微型机原理与程序设计
SF, Sign Flag, 符号标志, 操作结果的符号位(即最高位的状态). 举例:
1000 0101 1010 1100
第二章 8086微处理器及系统
微型机原理与程序设计
2.1 8086微处理器
2.1.1 功能与引脚
8086的内部功能从逻辑上分为 两个处理部件: 总线接口部件 BIU (Bus Interface Unit)
执行部件EU (Execution Unit)
微型机原理与程序设计
2.1 8086微处理器
中所需要的控制信号全部由8086CPU本身直接提供。
最大模式--系统中有两个或两个以上的微处理器,即除了主处理器8086以外, 还有协处理器(8087算术协处理器或8089 输入/输出协处理器)。最大模式可构成多 处理器系统,系统中所需要的控制信号由总线控制器8288提供。 最大模式是相对最小模式而言的。在最大模式系统中,总是包含有两个或多个微处 理器,其中一个主处理器就是8086,其他的处理器称为协处理器,它们是协助主处理 器工作的。和8086配合的协处理器有两个,一个是数值运算协处理器8087,一个是 输入/输出协处理器8089。 CPU工作模式的选择是由硬件决定的,将8086的第33号引脚MN / MX接地,则工作 于最大模式,第33号引脚接高电平,则工作于最小模式。8086CPU有8条引腿(第24
TEST :测试输入信号,由WAIT指令来测试。 0→ WAIT 指令的功能相当于NOP 空操作指令 1→ WAIT指令重复测试TEST引脚,直到它变为 逻辑0。 NMI :非屏蔽中断输入信号,不受IF标志位控制 若NMI 被激活,则该中断输入使用中断向量2。 RESET :复位输入信号,若该引脚保持4 个时 钟周期以上的高电平,则微处理器复位。一旦 8086复位,则从存储单元FFFF0H开始执行指令, 并使IF标志位清零,禁止中断。 CLK :时钟引脚,为微处理器提供基本的定时信 号。时钟周期的1/3 为高电平,2/3 为低电平,以 便为8086 提供正确的内部定时基准。
动作管理原则 ①每当8086 的指令队列中有2 个空字节,总线接口部件就会自动把指令代码取
到指令队列中。
②每当执行部件准备执行一条指令时,它会从总线接口部件的指令队列前部取 出指令的代码,然后用几个时钟周期去执行指令。 ③当指令队列已满,而且执行部件对总线接口部件又没有总线访问请求时,总 线接口部件便进入空闲状态。 ④在执行转移指令、调用指令和返回指令时,指令队列中的原有内容被自动淸 除,总线接口部件会接着往指令队列中装入另一个程序段中的指令。
执行部件 执行部件的功能就是负责指令的执行。执行部件接收BIU预先取出放在指令队列
中的指令,为BIU 提供未重定位的数据和地址。存储器中的数据通过BIU 被传递给EU, EU 将处理结果通过BIU送到存储器存储。
微型机原理与程序设计
2.1 8086微处理器
部件的动作管理
总线接口部件和执行部件工作不同步
1000 0001 1 + 1000 0000 0000 0001
结果: CF=1
1000 0000 1 - 1000 0001 1111 1111
结果: CF=1
微型机原理与程序设计
AF, Auxiliary Carry Flag, 辅助进位标志, 两数相加,第3位向前的 进位; 或两数相减第3位向前的借位, 举例:
总线接口部件 BIU
总线接口部件的功能是负责与存储器、I/O 端口传送数据。总线接口部件要 从内存取指令送到指令队列;CPU执行指令时,总线接口部件要配合执行部件 从指定的内存单元或者外设端口中取数据,将数据传送给执行部件,或者把执 行部件的操作结果传送到指定的内存单元或外设端口中。 8086在执行指令的同时,从内存中取出后续的1条或几条指令,并放在一个 6字节的指令队列中。这样,一般情况下,8086执行完一条指令就可以立即执 行下一条指令,而不需要轮番地进行取指令和执行指令的操作,从而提髙了 CPU的效率。
+
微型机原理与程序设计
2.1 8086微处理器
控制类标志位 TF(陷阱) 陷阱标志,能够激活8086的调试功能(对程序进行调试,以便找 到错误或故障)。如果 TF 标志为允许(为 1 ),则微处理器根据 调试寄存器和控制寄存器的指示中断程序。如果 TF 标志为 0 ,则 禁止陷阱(调试)性能。 中断控制标志,控制INTR(中断请求)引脚的输入。如果IF=1, 则INTR引脚被允许,如果IF=0,则INTR引脚被禁止。IF标志的状 态由STI(置位I标志)和CLI(清除I标志)指令控制。 在串指令操作期间,方向标志为DI和SI寄存器选择递增方式或递 减方式。如果 DF=1 ,寄存器内容自动地递减;如果DF=0 ,寄存 器内容自动地递增。DF标志用STD指令置位,用CLD指令清除。
微型机原理与程序设计
2.1 8086微处理器
8086 微处理器的程序设计资源
微型机原理与程序设计
2.1 8086微处理器
1)多功能寄存器 AX(累加器)
AX可作为16位寄存器(AX)或8位寄存器(AH或AL)引用。注意, 如果是 8位寻址,则只改变 16位寄存器的一部分,其余的不受影响。 累加器用于乘法、除法及一些调整指令。对于这些指令,累加器有 专门用途,但它通常被认为是多功能寄存器。 BX(基址) BX可作为BX、BH或BL寻址。BX用于保存访问存储单元的偏移地 址。 CX(计数器) CX是个通用寄存器,也可保存许多指令的计数值。用于计数的指令 是 重 复 的 串 指 令 ( REP/REPE/REPNE ) 、 移 位 、 循 环 和 LOOP/LOOPD 指令。移位和循环指令用 CL 计数,重复的串指令用 CX计数,LOOP/LOOPD指令用CX计数。 DX(数据) DX 是通用寄存器,用于保存乘法形成的部分结果,或者除法之前 部分被除数。 BP(基指针) 在8086微处理器中,为了传送存储器数据,BP指向存储单元。 DI(目标变址) DI 常用于寻址串指令的目标数据串,它的另一个功能是作为 16 位 (DI)通用寄存器使用。 SI(源变址) 源变址寄存器通常用于为串指令寻址源数据串。如同DI一样,SI也 作为通用寄存器使用。作为16位寄存器。
微型机原理与程序设计
2.1 8086微处理器
AD15~AD0:ALE=1→地址线, ALE=0→数据线 在“保持响应”(HOLD)期间,这些引脚为高 阻抗状态。 A19/S6~A16/S3:多路复用地址/状态总线 状态位S6一直保持逻辑0,S5 表示中断允许标志 位(IF)的状态,S4 和S3 指示当前总线周期内 被访问的段。表2-1-1 为S4 和S3 的真值表。这两 个状态位还可被译码为A21和A20,用来寻址4 个 独立的1MB存储区。
AND 1001 1101 1001 0111 1000 0101 1000 0100
结果: SF=1
OF, Overflow Flag, 溢出标志, 算术操作,结果超过目标所能容纳的 范围. 举例:
0111 1110 0000 0011 1000 0001