第二课 Intel 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#为高阻态。
8086简介

第二章8086微处理器【回顾】微型计算机及微机系统的组成、结构与工作过程,CPU的基本概念与一般结构。
本讲重点8086微处理器的一般性能特点,内部编程结构的两大组成部分及在信息处理中的相互协调关系,处理器状态字PSW及各个标志位,8086微机系统的存储器组织。
一、8086微处理器1.引言8086微处理器是Intel公司推出的第三代CPU芯片,它们的内部结构基本相同,都采用16位结构进行操作及存储器寻址,但外部性能有所差异,两种处理器都封装在相同的40脚双列直插组件(DIP)中。
2.8086微处理器的一般性能特点:16位的内部结构,16位双向数据信号线;20位地址信号线,可寻址1M字节存储单元;较强的指令系统;利用第16位的地址总线来进行I/O端口寻址,可寻址64K个I/O端口;中断功能强,可处理内部软件中断和外部中断,中断源可达256个;单一的+5V电源,单相时钟5MHz。
另外,Intel公司同期推出的Intel8088微处理器一种准16位微处理器,其内部寄存器,内部操作等均按16位处理器设计,与Intel8088微处理器基本上相同,不同的是其对外的数据线只有8位,目的是为了方便地与8位I/O接口芯片相兼容。
3.8086CPU的编程结构编程结构:是指从程序员和使用者的角度看到的结构,亦可称为功能结构。
如图2-1所示是8086CPU的内部功能结构。
从功能上来看,8086CPU可分为两部分,即总线接口部件BIU(Bus Interface Unit)和执行部件EU(Execution Unit)。
(1) 执行部件(EU)功能:负责指令的执行。
组成:包括①ALU(算术逻辑单元)、②通用寄存器组和③标志寄存器等,主要进行8位及16位的各种运算。
图2-1 8086/8088CPU内部功能结构图(2) 总线接口部件(BIU)功能:负责与存储器及I/O接口之间的数据传送操作。
具体来看,完成取指令送指令队列,配合执行部件的动作,从内存单元或I/O端口取操作数,或者将操作结果送内存单元或者I/O端口。
(完整版)第二课Intel8086微处理器简介

微型计算机主要是由微处理器(CPU)、主存储器、外部设备及互联部件组成,总线(数据总线、地址总线、控制总线)在部件之间提供通信。
Intel 8086微处理器按功能可分为两大部分:执行部件和总线接口部件执行部件主要由寄存器组、算逻部件、标志寄存器组成含有8个16位的标志寄存器,这些标志寄存器属于CPU的专用存储器,按其用途可分为两组:数据寄存器组和指示器变址寄存器组数据寄存器组(AX、BX、CX、DX)数据寄存器主要用来保存操作数和运算结果等信息。
AX:累加器,其作用为乘除运算,字的输入输出,中间结果的缓存BX:基址寄存器,其作用为存储器的指针使用CX:计数寄存器,其作用为串操作和循环控制DX:数据寄存器,其作用为字的乘除运算,间接的输入输出,也可以用作存放I/O的端口地址高8位H组:AH、BH、CH、DH低8位L组:AL、BL、CL、DL指示器变址寄存器(SI、DI、SP、BP)它们一般存放操作数的偏移地址,用作指示器或者变址寄存器。
SP:堆栈指示器,其作用为存取堆栈的指针DI:存储器指针,其作用为串指令目的操作数指针(目的变址寄存器)BP:堆栈操作数的基址寄存器SI:源变址寄存器。
当SI、DI和BP不用做指示器和变址寄存器时,也可以将他们当作数据寄存器使用,用来保存操作数和运算结果,但是这时只能呢个用来做16位寄存器而不能是8位的。
由于SP是专用的堆栈指示器,所以他不能做数据寄存器使用。
总线接口部件由于执行部件所提供的存储器地址是16位的,而8086访问1M空间却需要20位的地址,为了形成这20位地址,在总线接口部件中设立了4个段寄存器(CS、DS、ES和SS)CS:代码段寄存器,指示当前代码段,即它规定了现行程序所在的存储区首址DS:数据段寄存器ES:附加数据段寄存器SS:堆栈段寄存器,每个段可达64K字节。
在总线接口部件中,还有一个很重要的寄存器——指令指示器(IP),他总是保存着下一次将要从主存中取出的指令的偏移地址,其值为该指令到所在段段首址的字节距离。
第二章-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位外围接口芯片 直接兼容
第2章_8086微处理器

1) 每当队列中有两个字节的空间时,BIU就自动 地顺序预取后续指令代码,并填入指令队列中。 2) 如果指令队列已满,且EU又无请求时,BIU不 执行任何总线周期,进入空闲状态。 3) 当EU在执行中须向BIU申请从内存或I/O口读 写操作数时,若此时BIU空闲,则会立即完成EU 请求;否则BIU先完成取指令操作,然后再进行 操作数的读写总线周期(执行EU)。 4) 如果EU执行转移指令,则BIU清除队列机构, 从新地址取得指令,并立即送给EU去执行。然后 从后续指令序列中取指令填满队列。
GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
20位地址加法器
AH AL BH BL CH CL DH DL SP BP SI DI
运算寄存器
∑
16位
CS DS SS ES IP
内部总线 内部暂存器
输入 / 输出 控制 电路
外部 总线
ALU
标志寄存器
执行 部件 控制 电路
指令队列
EU
BIU
8086用20位地址寻址, 但内部的寄存器均为16 位,所以要由段寄存器 和其他寄存器相加形成 20位地址进行寻址。 8086在执行指令的同 时,从内存中取出下一 条或下几条指令放在指 令队列中,这样,取指和 执值分开操作,可以节 省时间,连续执行指令
IP:控制CPU指令的执行 顺序,存放指令代码在 内存中的相对地址,顺 序执行时,CPU每取一个 指令字节,IP自动加1。
第2章 Intel8086微处理器

CF
机电工程学院电气教研室 主讲:李震
第 2 章 Intel8086微处理器
三、8086存储器管理
• 存储器分段管理 • 存储器地址表示方法 • 末地址的计算方法
机电工程学院电气教研室 主讲:李震
第 2 章 Intel8086微处理器
1、存储器分段管理
• 8086有20条地址线
–最大可寻址空间为220=1MB –物理地址范围从00000H~FFFFFH
AX: AH AL BX: BH BL CX: CH CL DX: DH DL
机电工程学院电气教研室 主讲:李震
第 2 章 Intel8086微处理器
二、8086内部寄存器
• 通用寄存器 1、数据寄存器 2、地址指针及变址寄存器 SP---堆栈指针(Stack Pointer) • 段寄存器 指出堆栈顶部的16位偏移地址 • 控制寄存器 BP---基址指针(Base Pointer) 指出堆栈中某单元的16位偏移地址 1、指令指针寄存器IP Index) SI ---源地址寄存器(Source 存放数据段某单元的16位偏移地址(源) 2、标志寄存器FR
机电工程学院电气教研室 主讲:李震
第 2 章 Intel8086微处理器
二、8086内部寄存器
• 通用寄存器 1、数据寄存器 AX---累加器(Accumulator) 2、地址指针及变址寄存器 使用频度最高。用于算术、逻辑运算以及与外设传送信息等 • 段寄存器 BX---基址寄存器(Base address Register) 常用做存放存储器地址 • 控制寄存器 CX---计数器(Counter) 作为循环和串操作等指令中的隐含计数器 1、指令指针寄存器IP DX---数据寄存器(Data register) 常用来存放双字长数据的高16位,或存放外设端口地址 2、标志寄存器FR
02第2章8086微处理器

2.2.2 总线接口部件BIU 总线接口部件的功能是负责与存储器、I/O端口 传送数据,即BIU管理在存储器中存取程序和 数据的实际处理过程。 总线接口部件由下列各部分组成: (1) 4个段地址寄存器,即 CS——16 CS——16位代码段寄存器; DS——16位数据段寄存器; ES——16位附加段寄存器; SS——16位堆栈段寄存器。 (2) 16位指令指针寄存器IP。 (3) 20位的地址加法器。 (4) 6字节的指令队列。 8086/8088的BIU有如下特点:
(4) 在执行转移指令、调用指令和返回指令时,下面 要执行的指令就不是在程序中紧接着的那条指令了, 而总线接口部件往指令队列装入指令时,总是按顺序 进行的,这样,指令队列中已经装入的字节就没有用 了。遇到这种情况,指令队列中的原有内容被自动消 除,总线接口部件会接着往指令队列中装入另一个程 序段中的指令。
图2.5
例如,代码段寄存器CS=2000H,指令指针寄存器存 放的是偏移地址IP=2200H,存储器的物理地址为 20000H+2200H=22200H。 我们可以把每一个存储单元看成是具有两种类型的地 址:物理地址和逻辑地址。物理地址就是实际地址, 它具有20位的地址值,并是惟一标识1MB存储空间的 某一个字节的地址。逻辑地址由段基址和偏移地址组 成。程序以逻辑地址编址,而不是用物理地址。 4个段寄存器分别指向4个现行可寻址的分段的起始 字节单元。一般指令程序存放在代码段中,段地址来 源于代码段寄存器,偏移地址来源于指令指针IP。当 涉及到一个堆栈操作时,段地址寄存器为SS,
如果必须访问存储器或者输入/输出设备, 那么,执行部件就会请求总线接口部件,进入 总线周期,完成访问内存或者输入/输出端口 的操作;如果此时总线接口部件正好处于空闲 状态,那么,会立即响应执行部件的总线请求。 但有时会遇到这样的情况,执行部件请求总线 接口部件访问总线时,总线接口部件正在将某 个指令字节取到指令队列中,此时总线接口部 件将首先完成这个取指令的总线周期,然后再 去响应执行部件发出的访问总线的请求。 (3) 当指令队列已满,而且执行部件又没有总 线访问时,总线86/8088存储空间中,把16字节的存储空间称 作一节(paragraph)。为了简化操作,要求各个逻辑 段从节的整数边界开始,也就是说段首地址低4位应 该是“0”,因此就把段首地址的高16位称为“段基 址”,存放在段寄存器DS或CS或SS或ES中,段内的 偏移地址存放在IP或SP中。 若已知当前有效的代码段、数据段、附加段和堆栈段 的段基址分别为1055H,250AH,8FFBH和EFF0H,那么 它们在存储器中的分布情况如图2.4所示。
第2章 8086微处理器1

存储单元的物理地址(也称实际地址) =段起始地址+段内偏移量
1、8086/8088寻址的存储器为什么要分段?
2、8086/8088寻址的1M字节存储器如何分段? 3、存储器中各个段如何命名?
通常一个程序中通常有代码段、堆栈段、数据段、附加段. 代码段:用于存放程序(每个程序至少要有一个代码段)。 堆栈段:用于存放一些特殊数据。(可以有多个堆栈段) 数据段:用于存放一些数据。 (可以有多个数据段) 附加段:用于存放一些数据。 (可以有多个附加段)
2、8086CPU内有4个段寄存器(16位):ES、CS、DS、SS CS(码段)、DS(数据段)、ES(附加段)、SS(堆栈段),也称段 选择子。
3、8086CPU的指令指针寄存器IP(16位) IP:中为要取的下1条指令的偏移地址,在程序运行中 能自动加1修正。
4、 8086CPU的状态标志寄存器Flags( 16位)PSW 15 14 13 12 11 10 9 8 7 6 5 OF DF IF TF SF ZF Flags或 PSW
图2-3 8086CPU的标志寄存器
控制标志是人为设置的,由专门的指令来 设置和请除,针对某一特定功能起控制作 用。 状态标志表示某操作执行后所记录下来的 状态信息,这些状态信息一般用来作为后 续条件转移指令的转移条件。
六个状态标志含义如下: 1.进位标志CF或C 运算结果的最高位产生进位或借位时,则 CF=1,否则CF=0(字节操作D7、字操作D15、 双字D31) 2.奇偶标志PF 运算结果中1的个数为偶数,则PF=1,否 则PF=0 3.辅助进位标志AF 运算时当 D3 向D4 有进位或有借位时 ,则 AF=1,否则AF=0
1、代码段段基址在 代码段寄存器CS中,段内偏移量在指 令指针寄存器IP中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微型计算机主要是由微处理器(CPU)、主存储器、外部设备及互联部件组成,总线(数据总线、地址总线、控制总线)在部件之间提供通信。
Intel 8086微处理器按功能可分为两大部分:执行部件和总线接口部件
执行部件
主要由寄存器组、算逻部件、标志寄存器组成
含有8个16位的标志寄存器,这些标志寄存器属于CPU的专用存储器,
按其用途可分为两组:数据寄存器组和指示器变址寄存器组
数据寄存器组(AX、BX、CX、DX)
数据寄存器主要用来保存操作数和运算结果等信息。
AX:累加器,其作用为乘除运算,字的输入输出,中间结果的缓存
BX:基址寄存器,其作用为存储器的指针使用
CX:计数寄存器,其作用为串操作和循环控制
DX:数据寄存器,其作用为字的乘除运算,间接的输入输出,也可以用作存放I/O的端口地址
高8位H组:AH、BH、CH、DH
低8位L组:AL、BL、CL、DL
指示器变址寄存器(SI、DI、SP、BP)
它们一般存放操作数的偏移地址,用作指示器或者变址寄存器。
SP:堆栈指示器,其作用为存取堆栈的指针
DI:存储器指针,其作用为串指令目的操作数指针(目的变址寄存器)
BP:堆栈操作数的基址寄存器
SI:源变址寄存器。
当SI、DI和BP不用做指示器和变址寄存器时,也可以将他们当作数据寄存器使用,用来保存操作数和运算结果,但是这时只能呢个用来做16位寄存器而不能是8位的。
由于SP是专用的堆栈指示器,所以他不能做数据寄存器使用。
总线接口部件
由于执行部件所提供的存储器地址是16位的,而8086访问1M空间却需要20位的地址,为了形成这20位地址,在总线接口部件中设立了4个段寄存器(CS、DS、ES和SS)
CS:代码段寄存器,指示当前代码段,即它规定了现行程序所在的存储区首址
DS:数据段寄存器
ES:附加数据段寄存器
SS:堆栈段寄存器,
每个段可达64K字节。
在总线接口部件中,还有一个很重要的寄存器——指令指示器(IP),他总是保存着下一次将要从主存中取出的指令的偏移地址,其值为该指令到所在段段首址的字节距离。
执行部件根据IP的内容与CS寄存器的内容形成指令的物理地址。