第4章8086结构1
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
段首地址的高16位称为“段基址”,也称段地址
偏移地址
(0000H~FFFFH)
偏移地址是指一个段内的存储空间相对于段基地址的偏移 段内偏移地址一般存放在IP,SP
二、BIU和EU的管理 (1)指令队列有2个字节节空(8086)时, BIU会自 动把下一条指令取到指令队列中。 (2)EU在执行指令过程中,如果必须访问存储器或I/O 设备,则EU会自动请求BIU进入总线周期去完成访问 存储器或I/O操作,此时若BIU空闲,就会立即完成 EU请求。否则BIU将首先完成自己,将指令取至指令 队列中的任务,再响应EU的请求。 (3)当指令队列已满,而EU又无请求时,BIU进入空闲 状态。 (4)当EU执行转移类,调用及返回指令时,EU将不再 用指令队列中顺序装入的指令。此时指令队列中原有的 内容被自动清除,而BIU会接着将另一程序段的指令 装入指令队列这种并行的工作方式极大地提高了CPU 的工作效率。
奇偶标志 辅助进位标志 零标志 符号标志 溢出标志
陷阱标志
为了调试程序方便而设置的
中断允许标志
控制可屏蔽中断的标志
DF (Direction Flag)
方向标志
若DF=1,字符串操作指令按递减的顺序从高地址到 低地址的方向对字符串进行处理;若DF=0,字符串 操作指令按递增的顺序对字符串进行处理
用于控制字符串操作指令的步进方向
CS DS SS ES
IP FLAG
控制寄存器
通用寄存器的特定用法
寄存器名称 AX AL AH 寄存器含义 16位累加器 8位累加器 8位累加器 常用的操作功能 字乘,字除,字I/O处理 字节乘,字节除,字节I/O处理,查表转换,十进 制运算 字节乘,字节除
BX
CX CL
16位基址寄存器
16位计数寄存器 8位计数寄存器
协助ALU完成运算பைடு நூலகம்暂时存放参加运 算的数据
从总线接口的指令队列取出指令操作 码,通过译码电路分析,发出相应的 控制指令,控制ALU数据流向。
8088/8086的寄存器结构
8088/8086内部有14 个16位寄存器,按功 能可分为3大类:
通用寄存器8个 段寄存器4个 控制寄存器2个
各段之间可分开、部分或完全重 叠、可首尾相接。 根据各段的用途将其定义为CS、 DS、ES、SS段。并用偏移地址 (距段起址的字节距离)表示被 访问单元。
存储器结构(续)
存储器结构 (续) 段地址
每一个段首地址的低4位是”0”
段地址一般存放在段寄存器DS,CS,SS,ES 每一个段的容量:64KB
BIU
CPU 等待取指1 执行1 等待取指2 执行2 等待取指3 执行3
取指1 执行1 忙
取指2 执行2 忙
取指3 执行3 忙
取指4 执行4 忙
取指5 执行5 忙
取指6 执行6 忙
EU
总线 忙 闲 忙 闲 忙 闲
总线
传统微处理器的指令执行过程
8086微处理器的指令执行过程
传统微处理器在执行程序时依次先从存储器中取出 —条指令, 然后读出操作数,最后执行指令。即取指令和执行指令是串 行进行的,取指令期间CPU必须等待。 在8086中,取指令和执行指令分别由总线接口部件BIU和 指令执行部件EU来完成,并且存在指令队列缓冲器中,使 BIU和EU可以并行工作,指令执行部件负责执行指令,总 线接口部件负责提取指令、读出操作数和写入结果。这两个 部件能互相独立地工作。在大多数情况下,取指令和执行指 令可以重叠进行,即在执行指令的同时进行取指令的操作。
2、执行部件EU:负责指令的执行及计算操作数 的16位偏移地址包括: 算术逻辑运算单元ALU幻灯片 10 数据暂存寄存器幻灯片 11 EU控制电路幻灯片 12 8个16位寄存器幻灯片 13 1个16位标志寄存器幻灯片15 幻灯片 18
可完成16/8位的二进制数运算,结 果一方面送到通用寄存器或BIU的 内部寄存器中以等待写到存储器; 另一方面影响标志寄存器,也可计 算偏移量
AH BH CH DH AL BL CL DL 累加器AX 基址寄存器BX 计数寄存器CX 数据寄存器DX 通用寄存器 SP BP SI DI 堆栈指针寄存器 基址指针寄存器 源变址寄存器 目的变址寄存器 代码段寄存器 数据段寄存器 堆栈段寄存器 附加段寄存器 指令指针寄存器 标志寄存器 段寄存器 指针和变址寄存器 数据寄存器
标志寄存器
标志寄存器(Flag Register)共有16位, 其中7位未用。标志寄存器内容如图所示: ( 1)状态(图 2.1 8086/8088CPU内部结构 条件)标志 (2)控制标志
15
O F
7
6
AF PF
0
CF
DF IF TF SF ZF
图4-2
标志寄存器结构图
状态标志:操作在执行后,决定算术逻辑部 件 ALU处于何种状态,这种状态会影 响后面的操作 SF、ZF、PF、CF、AF、OF 控制标志:它是人为设置的,指令系统中有专门的 指令用于控制标志的设置和清除,每个 控制标志都对每一种特定的功能起控制 作用 DF、IF、TF
20位地址的形成
16位寄存器
20位地址
地址加法器
15
15
段基址 16位段地址
15
0 0
3 2 1 0 0 0000 0 0 0
15
偏移地址
0
0
+
19
19
16位偏移地址
基址加法器
0
0
物理地址
20位物理地址
1. 存储器的分段
每段最长可达 64K字节
(低 4 位为 0 )
各段起始地址能被 16 整除。
第四章 8086/8088微处理器及其系 统结构 第一节8086/8088CPU内部结构
教学目标
理解8086微处理器的功能结构。 理解8086微处理器的通用寄存器、段寄存器、控 制寄存器的功能和用途。 熟练掌握8086微处理器的存储器的分段管理、物 理地址和逻辑地址的换算及I/O端口的编址方式。 理解8086微处理器的引脚功能、工作模式、最小 模式和最大模式下的引脚功能、系统组成和总线 时序。 了解80286、80386、80486以及Pentium系列 等高档微处理器的特点及基本结构。
标志寄存器FLAG中标志位的含义、特点 及应用场合
标志类别 标志位 含义 特点 应用场合 状 态 标 志 CF (Carry Flag) PF (Parity Flag) AF (Auxiliary Carry Flag) ZF (Zero Flag) SF (Sign Flag) OF (Overflow Flag) 控 制 标 志 TF (Trap Flag) IF (Interrupt Enable Flag ) 进位标志 CF=1时,结果在最高位上产生一个进位(加法)或 借位(减法);CF=0时,则无进位或借位产生 PF=1时,结果中有偶数个1;PF=0时,则表示结果 中有奇数个1。 AF=1时,结果的低4位产生了一个进位或借位; AF=0时,则无进位或借位 ZF=1时,运算结果位零;ZF=0时,则表示运算结果 不为零 SF=1时,运算结果为负数,即最高位为1;SF=0时, 则表示运算结果为正数,即最高位为0 OF=1时,带符号数在进行算术运算时产生了算术溢 出,即运算结果超出了带符号数所能表示的范围; OF=0时,则无溢出 若TF=1,则CPU处于单步工作方式,CPU执行完一 条指令就自动产生一个内部中断,转去执行一个中 断服务程序;若TF=0,CPU正常执行程序 若IF=1,允许CPU接受外部从INTR引脚上发来的可 屏蔽中断请求信号;若IF=0,则进制CPU接受可屏 蔽中断请求信号 用于加、减法运算,移位和循环指令也 能把存储器或寄存器中的最高位(左移) 或最低位(右移)移入CF位中 用于检查在数据传送过程中是否发生错 误 用于实现BCD码算术运算结果的调整 用于判断运算结果和进行控制转移 用于判断运算结果和进行控制转移 用于判断运算结果的溢出情况
基地址寄存器 计数寄存器 数据寄存器
堆栈指针寄存器 基数指针寄存器 目的变址寄存器 源变址寄存器
代码段寄存器 数据段寄存器 堆栈段寄存器 附加段寄存器 指令指针寄存器
算术逻辑 部件
(Execution Unit)
(Bus Interface Unit)
图4.1 8086/8088CPU内部结构
一、总线接口部件BIU与执行部件EU
IP指明当前所执行的程序执行到哪里了, 即程序所存放的地址执行到哪个地址了 用来控制CPU的指令执行顺序,它和代 码段寄存器CS一起可以确定当前所要取 的指令的内存地址。
根据EU计算出的16位偏移地址及16位 段寄存器的段地址,通过加法器生成 20位物理地址
BIU自动取指令以填满指令队列,等待 EU对指令的读取,分析与执行
在微机系统中各个部件通过总线互相通信,该部件控制各总 线的工作方式,包括 数据总线DB:一般为双向,用于CPU与存器或CPU与外 设之间传送数据息。 地址总线AB:单向,用于传送地址信息,指出数据所 在的地址,地址总线的位数决定了最大 可 编址的内存与I/O空间。对于N位地址 总线,CPU可以提供2N个不同地址:0~ 2N -1。 控制总线CS:用来控制CPU与内存和I/O设备之间的数 据传送方式(如传送方向)
4.2 存储器结构
8086/8088CPU能寻址1M字节的存储单元,以8位 为一个字节的顺序排列存放
每一个字节用一个唯一的地址码标示
地址码为一个不带符号的整数表示,范围从0到220-1,习惯 用十六进制表示,即00000H~FFFFFH。将存储器空间按 照字节地址号顺序排列的方式称作“字节编址”。
SP:堆栈指针寄存器,用它只可访问栈顶 由它和堆栈段寄存器SS一起来确定堆栈在内存中的位置 BP:基指针寄存器,用它存取堆栈中的数据 BP用来指示数据在堆栈中的一般位置(不一定是指 栈顶)。 他们主要用于存放堆栈内存储单元的偏移量,用 它们可实现多种存储器操作数的寻址方式。可以 为不同的地址形式访问存储单元提供方便。 S I: 源变址寄存器 DI :目的变址寄存器, SI和DI分别用来存放字符串处理时,源操作数段内偏移地址和目的 操作数段内偏移地址,故分别称作源变址寄存器和目的变址寄存器I。 它们主要用于存放存储单元在内的偏移量,同上。
1、总线接口部件BIU:负责与存储器及I/o 端口 的 数据传送,包括: 4个16位段寄存器幻灯片 4 1个16位指针寄存器幻灯片 5 20位物理地址加法器幻灯片 6 6/4字节指令队列幻灯片 7 总线控制电路幻灯片 8 幻灯片 9
CS:代码段寄存器,用于指明存放程序 的指令序列的段地址 DS:数据段寄存器 SS:堆栈段寄存器 ES:附加段寄存器,附加的数据段,在 串操作时将其作为目的操作数存放 区
2014年6月13日
2
教学重点
8086微处理器的通用寄存器、段寄存器、 控制寄存器的功能和用途。 8086微处理器的存储器的分段管理、物理 地址和逻辑地址的换算及I/O端口的编址方 式。 8086微处理器的引脚功能、工作模式、最 小模式和最大模式下的引脚功能、系统组成 和总线时序。
累加器 通用寄存器
查表转换
数据串操作指令,循环指令 变量移位,循环移位
DX
SP SI DI
16位数据寄存器
16位堆栈指针寄存器 16位源变址寄存器 16位目的变址寄存器
字乘,字除,简介I/O处理
堆栈操作 数据串操作指令 数据串操作指令
AX:累加器,用于整字/字节的乘、除法,查表,算术 运算等。例 IN AL ,i8 ;I/O端口i8的内容 送入AL BX:基地址寄存器,查表用,可作存储器指针来使用 CX:记数寄存器,在循环和字符串操作时,要用它来 控制循环次数,在位操作中,当移动多位时,要 用CL来指明移位的位数 DX:数据寄存器,在进行乘除法时,可作默认的操作 数参与运算,也可用于存放I/O的端口地址 MUL r16/m16 ;DX.AX-----AX r16/m16 OUT DX ,AL ;字节输出