8086cpu结构与功能

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.1 8086/8088微处理器的内部结构 2.2.1 8086/8088 CPU的内部结构
1. 8086CPU的组成
•16位通用寄存器组 (AX、BX、CX、DX、SP、BP、SI、DI) EU 负责指令的执行,从 BIU的指 •算术逻辑单元 ——ALU •EU控制器 令队列中取指令和数据,不直接 •控制寄存器 (指令指针 标志寄存器F) 与外部总线相连
3 8086与8088 CPU的区别
(1)86 CPU的数据外总线宽度为16位,因 此设有BHE;而88 CPU的数据外总线宽度 为8位,把BHE引脚改为SSO; (2)86CPU中的指令预取队列为6个字节, 而88CPU为4个字节; (3)86CPU选通存储器或I/O接口的信号是 M/IO ,低电平时选中I/O设备,高电平时选 中存储器;而88CPU是IO/M信号 ,低电平 时选中存储器,高电平时选中I/O接口。
(2) 控制标志位
TF:陷阱标志位(Trap Flag)。 当TF=1时,将使CPU进入单步执行工作方式, 主要用于程序调试,单步操作; IF:中断标志位(Interrupt Flag)。 控制微处理器响应或禁止外部中断。 DF:方向标志位(Direction Flag)。
控制字节串或字串重复操作指令地址调整的步进
•段寄存器组 (CS、DS、SS、ES) BIU 根据EU 的请求,完成 CPU与存 •指令指针 —— IP 贮器或 I/O设备之间的数据传送 •地址加法器 •指令队列 •总线接口控制逻辑
EU
CPU
BIU
2 8086/8088CPU的功能结构
16 位 通 用 寄 存 器 组 AH AL BH BL CH CL DH DL SP BP SI DI
2. 指针与变址寄存器组
SP(Stack Pointer) : 堆 栈 指 针 寄 存 器
BP(Base Pointer):基地址指针寄存器
SI(Source Index):源变址寄存器
DI(Destination Index):目的变址寄存器
寄存器的隐含用法 寄存器 执 行 操 作
AX AL
AH BX CX CL DX SP SI DI

取指
EU动作

执指
并行工作方式:
• 8088CPU采用并行工作方式
EU
执行1 执行2 执行3
取指令3 取操作数 取指令4 忙碌 忙碌 忙碌
BIU 取指令2 取操作数 存结果 BUS
忙碌 忙碌 忙碌
通用寄存器组(1.数据寄存器) AX:累加器。可分成两个八位寄存器AH、 AL使用。 BX:基址寄存器。可分成两个八位寄存 器BH、BL使用。 CX :为计数器。可分成两个八位寄存器 CH、CL使用。 DX:数据寄存器 。可分成两个八位寄存 器DH、DL使用。
-----反映运算结果是否超出了带符号数的表数范围。
例:十六进制数 0CCCCH 与十六进制数 5115H 相加, 请写出运算后六个标志状态位的值。 解: 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 (0CCCCH) + 0101000100010101 (5115H) 10 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 从运算结果看出: 最高位D15位往前有进位,所以CF=1; 运算结果不全为0,所以ZF=0; 由于D15=0,所以SF=0; 运算结果的低8位中有4个“1”,所以PF=1; D3有向D4进位,因此AF=1; 两个异号数相加,不可能发生溢出,所以OF=0。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Fra Baidu bibliotek0
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
VCC AD15 AD16/S3 AD17 /S4 AD18 /S5 AD19 /S6 SS0 (HIGH) MN/MX RD HOLD(RQ/GT0 ) HLDA(RQ/GT1 ) WR(LOCK) M/IO(S2 ) DT/R(S1 ) DEN(S0 ) ALE(QS0 ) INTA(QS1 ) TEST READY RESET
注意:DS、SS和ES寄存器的内容可由程序 设置,而CS寄存器的内容不能用程序设置
●控制寄存器 1.指令指针寄存器 IP:指令指针寄存器 2.标志寄存器(Flag Register)共有16位,9个标 志其中,7位未用。标志寄存器内容如图:
15 14 13 12 11
OF
10
DF
9
IF
8
TF
7
SF
6
ZF
5
4
AF
3
2
PF
1
0
CF
条件标志 -----共6位,用于寄存程序运行的状态信息,这些标志往往用 作后续指令判断的依据。 控制标志 -----共3位,用于控制机器或程序的某些运行过程。
15 14 13 12 11
OF
10
DF
9
IF
8
TF
7
SF
6
ZF
5
4
AF
3
2
PF
1
CF
状态标志 1.CF(Carry Flag)进位标志
整字乘法,整字除法,整字I/O。
字节乘法,字节除法,节字I/O。 十进制算术运算。 字节乘法,字节除法。 翻译。 字符串操作,循环。 变量的移位和循环移位。 整字乘法,整字除法,间接I/O。 堆栈操作。 字符串操作。 字符串操作。 翻译,
3 段寄存器 CS:代码段寄存器 DS:数据段寄存器 SS:堆栈段寄存器 ES:附加段寄存器
串行和并行方式的指令流水线:
• 串行工作方式: 控制器和运算器交替工作,按顺序完 成上述指令执行过程; • 并行工作方式: 运算器和控制器可同时工作。
串行工作方式:
• 8088以前的CPU采用串行工作方式:
CPU
BUS
取指令1
忙碌
执行1
存结果1 取指令2 取操作数 执行2 忙碌 忙碌 忙碌
BIU动作
4.ZF(Zero Flag)零进位
-----反映计算结果是否为0。若结果为零则ZF=1,否则ZF=0。
5.SF(Sign Flag)符号标志
-----反映计算结果最高位及符号位的状态。如果运算结果的最高位 为1则SF=1(对带符号数即为负数),否则SF=0(对带符号数 即为正数)。
6.OF(Overflow Flag)溢出标志
方向。
完成运算:67A0H+0891H,填写下表中的结果和各 状态标志位的状态: OF DF IF TF SF ZF AF PF CF
练习:5439H+456AH
2.2 8086/88的引脚与功能
8086/8088CPU外形
8086/88的引脚
8086 GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 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 VCC AD15 AD16/S3 AD17 /S4 AD18 /S5 AD19 /S6 BHE/S7 MN/MX RD HOLD(RQ/GT0 ) HLDA(RQ/GT1 ) WR(LOCK) M/IO(S2 ) DT/R(S 1 ) DEN(S0 ) ALE(QS0 ) INTA(QS1 ) TEST READY RESET GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND 8088
-----反映在运行结果的最高位有无进位或借位。
2. PF(Parity Flag)奇偶标志
-----反映运算结果中“1”的个数的奇偶性,主要用于判断数据 传送过程中是否出错。
3. AF(Auxiliary Flag)辅助进位标志
-----加减运算时,若D3向D4产生了进位或借位则AF=1。否则 AF=0。在BCD码运算时,该标识用于十进制调整。
20位地址
地址加法器
16位
16 位 寄 存 器 组
总 线 接 口 控 制 逻 辑
16位内部总线
CS DS SS ES IP 内部通讯
内 存
外部总线 (三总线)
运算寄存器
ALU
EU 控 制 器
4或6字节指令队列
1 2 3 4 5 6
组成 功能
标志寄存器
EU
BIU
工作
指令的一般执行过程: 取指令 数 指令译码 执行指令 读取操作 存放结果
相关文档
最新文档