16位微处理器
一、8086/8088结构
1.功能结构:![](https://i-blog.csdnimg.cn/blog_migrate/46368299f992b8f47d1775c36bbe6dd9.jpeg)
EU(执行部件) 02从指令队列取指---->送控制器
03对指令分析,译码(控制器)
04在ALU中执行,执行结果---->送BIU
BIU(总线接口部件)01从主存或I/O接口取指令----->送指令队列
05将结果送主存或I/O接口
06从主存/外设接口去操作数送ALU
流水线技术:
BIU 取指令1 取指令2 取指令3.....
EU 执行指令1 执行指令2 执行指令3....
特点:01:时间并行:同时两个功能部件并行工作
不同步
02:多个功能部件:资源
2.寄存器结构:
14个16位寄存器:
EU:AX(AH,AL), BX(BH,BL), CX(CH,CL), DX(DH,DL)
指针寄存器:SP:堆栈栈顶指针 BP:基址指针
变指寄存器:SI:源变指 DI:目标变指
FR:标志寄存器 状态位6个:OF,CF,ZF,SF,PF,AF
控制位3个:IF,DF,TF
BIU:4个段寄存器:CS,DS,SS,ES
IP:将要执行下一条指令的地址(有效地址)偏移地址
指令由CS:IP确定 (CS:指令段地址 IP:有效地址) 逻辑地址
二、8086/8088引脚(外部特性)40个
AB DB CB VCC/GND
8086 A0-A15 D0-D15 33引脚
A16-A19 16位
8088 A0-A7 D0-D7 28、34引脚
A8-A15 8位
A16-A19
1、地址/数据复用引脚:
8086 AB:20位 AD0-AD7低8位
DB:16位 AD8-AD15高8位
8088 AB:20位 AD0-AD7
DB:8位
字节:12H 2个字节
34H
字:3412H 1个字8位
引脚的特点:
01分时复用,不同的信号不同时间传送
02电平:高电平:AD0-AD15 NM2
低电平:INIA^-,RD^-,WR^-
M^-/IO M/IO^-
88 86
M^-/IO=1 8088访问外设
M^-/IO=0 8088访问主存
03方向:A0-A19
CPU------>单向
D0-D15双向
CB------>控制出
<------控制入
2.控制信号线,状态信号线
01:MN/MX^- =1(高电平):最小模式
=0(低电平):最大模式
02:RD^-:读
WR^-:写
IOR^-:外设读 最大模式下
IOW^-:外设写
MOV AL,[2000H] 读 RD^- 字节
MOV [3000H],AX 写WR^- 字
03:DT(数据传输)/R^- (写/读)
RD^- WR^- DT/R^- M/IO^- DEN^- 数据总线有数据
1 0 1 1 0
CPU对主存写数据
04:中断信号线:NMI,INTR,INTA^-
NMI:入,非屏蔽中断请求信号线,与IF无关
INTR:入,可屏蔽中断请求信号线,与IF有关
IF=1时,开中断
IF=0时,关中断
特点:001-003(略)
05:ALE边沿(下降沿)
A0-A19,当T1传送地址信号,当T2时A0-A19锁入锁存器,在ALE有效时,20位地址总线----->锁存器
06:8284有关: 时钟信号发射器
8284位CPU产生三个信号线:
CLK RESET REDAY
CLK: 主频 5MHZ 8MHZ
RESET:复位 CPU复位 CS=0FFFFH 其它寄存器=0
执行第一条指令地址:CS:IP=0FFFFH:0H
READY:入,准备就绪
READY=1 准备就绪
READY=0 没有准备就绪,CPU要在T3-T4间插入TW(等待周期)
07:8086 34引脚 BHE:总线高8位有效 D8-D15有效
BHE^-=0时有效
08:最大工作方式 用的(括号)内的引脚
三、8088/8086的工作方式(模式)
1.MN/MX^- =1最小
=0最大
2.最小工作方式:
单处理器系统,又有一个微处理器,所存控制信号均有8086/8088产生
构成:
单处理器8086/8088:CPU
8284:产生时钟信号
8283:地址锁存器:A0-A19(3片) 每一个8283只锁8位
8286:数据收发器:双向
3.最大工作方式:
多处理器系统,多个微处理器 主:8086/8088 从:协处理器芯片 8087,8089
8087,协助处理浮点数
8089,IO处理器协助(通道)
四、8086/8088主要操作时序
1.名词:
01:时钟周期:T状态表示:T1=1/主频 T2 T3 T4
02:总线周期(完成一次读写操作):T1-T4组成基本总线周期 T1,T2,T3,TW,T4:组成扩展总线周期 03:指令周期:完成一条指令的时间,一般要包括多个总线周期
04:等待周期:TW,T3与T4之间
插与不插要看ready信号
ready=0;在T3与T4之间插入TW
ready=1;不插
05:空闲周期:T4之后,下一个总线周期T1之前
2.时序操作:
01:MOV AL,5
001:取指令:T1 T2-T4
地址 数据MOV
A0-A19 D0-D7
002:取操作数:5(内存)
T1 T2-T4
地址 05H
5所在的存储单元 D0-D7
A0-A19
02:CPU写操作
MOV【1000H】,AL
001:读(取)操作,MOV指令
002:AL写入主存1000H单元地址中
03:最大模式图(略)
04:INTA^-响应时序图(略)
05:总线请求/响应(略)
五、中断
1.定义:(略)
01:中断类型:内中断(软件):溢出,分母为0,0型(分母为0),1型(单步调试),3型(断点),4型(溢出)
外中断(硬件):NMI:电源掉电:2型 INTR:外设
02:中断源:内:CPU处理程序中产生
外:外围设备
03:中断类型:8086/8088共有256个中断
0-255 0,1,2,3,4,n
00H-0FFH
n=21H
INT 21H:DOS功能调用
04:中断向量:中断服务子程序的入口地址,用CS:IP表示,存放于中断向量表中,16位:16位 逻辑地址
05:中断向量表:内存空间000H-3FFH共1kb,存储了256个中断向量,每个中断向量占4个字节,分别位CS:IP个2个字节 1个字节=8位
06:中断断点:CS:IP表示 子程序返回主程序时地址
07:中断优先级(从左到右,从上到下,由大变小)
软件中断:0,3,4,n型
硬件中断:NMI(2型)
单步(1型)
08:中断嵌套:(略)
2.中断过程:
中断请求,中断判优,中断响应,中断处理,中断返回
01:中断响应: 001:INTA^-:是INTR请求的响应
输入INTR=1有效 INTA^-=0
02:中断响应过程:
001:取中断向量n
002:FR入栈(标志寄存器)保护
003:IF=0,TF=0(关闭中断)屏蔽单步,调域
004:保护断点,将返回时地址CS:IP入栈保护
005:n*4--->表地址--->4个字节--->CS:IP中断向量--->子程序入口
03:中断响应条件:
001:CPU当前指令执行结束
002:对外中断INTR才有响应,对应INTA^-
003:IF=1 开中断
IF=0 关中断 不响应INTA^-
004:INTA^-响应周期(略)
005:中断返回
IRET IP
CS 出栈 恢复
FR
3.软件中断:
01:指令中断:INT n 调用中断
02:不执行 INTA^-
03:不从D7-D0取n,而是直接给出
04:不受IF影响
05:受TF影响
(IF外中断 TF内中断)
4.中断服务子程序结构:
01:保护现场:CPU内一些寄存器入栈
02:开中断
03:中断处理
04:恢复现场
05:IRET中断返回,返回上一级程序