微机原理及应用第二章体系结构.docx
《微机原理及应用第二章体系结构.docx》由会员分享,可在线阅读,更多相关《微机原理及应用第二章体系结构.docx(20页珍藏版)》请在冰豆网上搜索。
微机原理及应用第二章体系结构
第二章8086微处理器及其体系结构
本章主要内容
●8086CPU的内部结构
●8086CPU的引脚特点
●微机电路结构及工作时序
●8086CPU对存储器的组织
§2-1CPU性能描述
一:
字长——CPU数据线条数
1:
表数精度
2:
相对运行速度
3:
典型CPU字长
A:
8088——8bit
B:
8086——16bit
C:
80386——32bit
二:
指令数
1:
基本指令133条
2:
扩展指令数千条(不同寻址方式和寄存器的组合)
三:
指令执行时间
1:
提高主频
2:
减少指令执行所需时钟周期数
3:
增加数据线条数
4:
取指令和执行指令时间重叠
四:
访问内存储器空间——由CPU地址总线数确定
1:
Z80CPUAB=16访存空间216=64K
2:
8086CPUAB=20访存空间220=1M
3:
80286CPUAB=24访存空间224=16M
4:
PⅢCPUAB=32访存空间232=4G
§2-28086CPU内部结构
由两部分组成执行部件—EU接口部件—BIU
一:
执行部件EU——8086CPU的核心
1:
16位运算器ALU
A:
算术及逻辑运算(同8位机)
B:
16位偏移地址运算(8086特点)
2:
8位控制单元
A:
从BIU的指令队列中取指令
B:
对指令进行译码
C:
产生不同的控制信号
3:
16位寄存器组
A:
16位通用数据寄存器AX,BX,CX,DX
B:
16位通用地址寄存器BP,SP,SI,DI
C:
16位标志寄存器F
二:
接口部件BIU——8086CPU的特点
1:
指令队列缓冲器
A:
Z80CPU取指,执指图
取指
执指
取指
执指
1)取指总线忙
2)执指总线闲
B:
8086CPU取指,执指图
取指1
执指1
取指2
执指2
取指3
执指3
1)指令队列缓冲器先从指令存储区取数条指令
2)EU从队列中取指,而非直接从指令存储区取指
3)EU执行指令的同时队列继续从指令存储区取指
4)取指和执指重叠
5)总线一直忙,从而提高速度
C:
特点
1)指令队列缓冲器为移位寄存器,满足先进先出原则
2)8086队列为6字节,8088队列为4字节
3)执行转移指令时清队列
2:
16位指令指针寄存器——IP
A:
8位机(Z80CPU)中的程序指针寄存器PC
1)地址总线AB=16bit
2)程序指针寄存器PC=16bit
3)PC指向存储器单元的实际地址
B:
16位机(8086CPU)中的指令指针寄存器IP
1)地址总线AB=20bit
2)指令指针寄存器IP=16bit
3)IP指向存储器单元的偏移地址(有效地址)
C:
IP的使用
1)程序设计中,不能直接改变IP的值
2)程序运行中,IP值根据指令功能而自动改变
3:
16位段寄存器CS,DS,ES,SS
8086CPU的AB=20bit,REG=16bit,
问题:
怎样用16位寄存器表示20位存储器实际地址
A:
将存储器1M空间分为多段,每段长为64K
B:
将段首地址值的高16位值放入段寄存器,称段地址
C:
20位实际地址由段地址和段内偏移地址(有效地址)构成
4:
地址产生器
A:
输入1)段寄存器中的段首地址(16位)
2)从EU来的段内偏移地址(16位)
B:
输出实际地址(20位)
C:
公式
实际地址=段首地址*16+段内偏移地址
实际地址=段首地址←4+段内偏移地址
注:
段首地址左移4位等于段首地址乘与16
《例》某存储器单元的段地址为2F86H,偏移地址为2A36H,
问:
该存储器单元的实际地址为多少
PA=段地址←4+偏移地址
=2F86H←4+2A36H
=2F860H+2A36H
=32296H
D:
存储器单元地址表示法
1)20位地址表示法32296H
2)32位地址表示法2F86H:
2A36H
5:
总线控制器
A:
8086CPU的数据线/地址线复用技术(40页)
B:
数据线,地址线的分离过程(44页)
§2-38086CPU的寄存器结构
一:
使用特点
1:
指令助记符中,寄存器用名定义
2:
程序设计中,寄存器用名访问
二:
分类特点
1:
通用数据寄存器
A:
16位通用数据寄存器(4个)
AXBXCXDX
B:
8位通用数据寄存器(8个)
AHALBHBLCHCLDHDL
C:
常用功能
AX——累加器
BX——基数寄存器
CX——计数器
DX——数据寄存器
2:
通用地址寄存器——SP,BP,SI,DI
A:
仅有16位使用
B:
用于存放偏移地址
C:
常用功能
SP,BP——用于堆栈段操作
SI,DI——用于数据段,附加段操作
3:
段寄存器——CS,DS,ES,SS
A:
仅有16位使用
B:
用于存放段地址
CS——存放代码段段首地址
SS——存放堆栈段段首地址
DS——存放数据段段首地址
ES——存放附加段段首地址
C:
段寄存器与通用寄存器之间的使用特点
1):
CS——IPCS:
IP构成代码段20位指令存放地址
2):
SS——SPSS:
SP构成堆栈段栈顶地址
3):
DS——SIDS:
SI构成源数据串地址
4):
ES——DIES:
DI构成目的数据串地址
5):
DS——BXDS:
BX构成数据段基数地址
6):
SS——SPSS:
SP构成堆栈段基数地址
注:
有关应用在寻址方式及串操作指令中祥细讲解
4:
指令指针寄存器——IP
A:
仅有16位使用
B:
用于存放代码段内的偏移地址(有效地址)
C:
与CS寄存器构成指令存放的实际地址
5:
标志寄存器——F
A:
16位标志寄存器中仅用9位作标志位用
B:
状态标志位名称CFOFAFZFSFPF
C:
控制标志位名称IFDFTF
注:
关于标志位的作用及使用方法非常重要,在后面章节中讲解
§2-48086CPU的引脚特性
一:
数据/地址复用线
1:
减少了8086CPU的引脚线
2:
需解决数据/地址的分离
二:
控制线
功能各异——不同控制线具有不同的作用,
方向确定——仅为单向,输入,输出确定
电平触发——不同控制线具有不同的电平触发方式
1:
/BHE——存储器R/W传数方式选择
与地址线A0构成8位,16位数据传送选择
注:
§2-9节祥讲
2:
/RD——存储器读数据有效控制线,输出,低有效
/WR——存储器写数据有效控制线,输出,低有效
注:
用于存储器,I/O操作,后面章节常用
3:
READY——CPU,MEM间R/W等待控制线,输入,高有效
4:
RESET——8086CPU复位有效控制线,输入,高有效
5:
ALE——地址/数据复用线分离控制线,输出
A:
ALE=H地址线锁存
B:
ALE=L地址线保持
6:
/DEN——数据传送有效控制线,输出,低有效
7:
DT//R——数据传送方向控制线,输出
A:
DT//R=HCPU向存储器写数据有效
B:
DT//R=LCPU从存储器读数据有效
8:
M//IO——存储器,I/O端口操作选择,输出
A:
M//IO=HCPU与存储器间读写操作
B:
M//IO=LCPU与I/O端口间输入,输出操作
9:
MN//MX——8086CPU工作方式选择,输入
A:
MN//MX=H8086CPU工作于最小工作方式
B:
MN//MX=L8086CPU工作于最大工作方式
10:
NMI,INTR,/INTA——与中断有关的控制线
11:
HDLD,HLDA——与DMA有关的控制线
三:
8086CPU复位后寄存器的初始值(41页)
1:
CS=FFFFHIP=0000H
2:
其余寄存器=0000H
3:
指令队列清空
§2-58086CPU与8088CPU的比较
一:
数据线比较
1:
8088CPU数据线为8条,故称8088CPU为8位机
2:
8086CPU数据线为16条,故称8088CPU为16位机
注:
又称8088CPU为准(伪)16位机,因为8088CPU片内
数据线为16条,片外数据线为8条
二:
地址线比较
8088CPU和8086CPU的地址线均为20条
三:
控制线比较
1:
MEM,I/O选择
A:
8088CPU——/M/IO
B:
8086CPU——M//IO
2:
8位,16位数据传送
A:
8088CPU仅有8条数据线,不能传送16位数据
B:
8086CPU有16条数据线,一次可传8位或16位,
由控制线/BHE控制
§2-68086CPU的时钟及总线周期
一:
专用时钟信号发生器芯片8284A介绍
1:
输入
A:
晶振
B:
外部复位信号/RES=L
C:
外部等待信号RDY=H
2:
输出(送8086CPU)
A:
时钟周期输出CLK=X
B:
复位信号输出RESET=H
C:
等待信号输出READY=H
二:
总线周期(44页图2-9)
CPU与MEM间R/W所需时钟周期数称总线周期
1:
基本总线周期
由四个时钟周期构成,分别称为T1T2T3T4
2:
扩展总线周期
A:
等待周期Tw由控制线READY=H控制,插入T3,T4之间,数量不限
B:
空闲周期Tt由控制线/TEST=L控制,插入T4之后,
数量不限
3:
读周期
A:
T1——8086CPU数据/地址复用线发地址信息
经地址总线AB给存储器
B:
T2——缓冲
C:
T3,T4——数据/地址复用线为数据线有效,8086CPU
经数据总线DB从存储器单元中读数据
4:
写周期
A:
T1——8086CPU数据/地址复用线发地址信息
经地址总线AB给存储器
B:
T2,T3,T4——数据/地址复用线为数据线有效,8086CPU
经数据总线DB向存储器单元中写数据
注:
从理论上讲R/W周期仅需要两个时钟周期,从可靠性考虑,8086CPU用了四个时钟周期,读周期中T2缓冲是由于地址线信息输出而数据线信息输入,而写周期不需缓冲是由于地址线信息,数据线信息均为输出
§2-78086CPU的最小/最大工作方式
条件控制线MN//MX=L,8086CPU工作于最小工作方式(45页)
控制线MN//MX=H,8086CPU工作于最大工作方式(48页)
特点最小工作方式,控制线由8086CPU直接给出(45页)
最大工作方式,控制线由专用芯片8288给出(48页)
应用最小工作方式,硬件系统简单,多用于专用机,要求掌握
最大工作方式,硬件系统复杂,多用于系统机,要求了解
一:
最小工作方式下的硬件电路
1:
数据/地址复用线的地址线分离
A:
分离时间T1
B:
分离控制线ALE=H
C:
分离器件锁存器
2:
数据/地址复用线的数据线分离
A:
分离时间T2,T3,T4
B:
分离控制线/DEN=L
C:
分离器件缓冲器
3:
锁存器
A:
作用——在T1时刻,将CPU发出的地址信号进行锁存
B:
原理——应用D触发器
1):
电路INOUT
ALE
注:
IN——地址/数据复用线(CPU)
OUT——地址总线AB(存储器,I/O)
ALE——地址锁存允许控制线(D触发器)
2):
真值表
ALE
IN
OUT
H
H
H
H
L
L
L
H
Qn
L
H
Qn
若:
ALE=H,则OUT=IN
若:
ALE=L,则OUT保持不变
3):
工作过程
T1时,ALE=H,CPU发地址→锁存器→存储器
T2,T3,T4时,ALE=L,锁存器锁存→存储器
C:
锁存器芯片
1):
专用,8282,8283
2):
通用,74LS373,74HC573
4:
缓冲器(收发器)
A:
作用——在T2~T4间,从地址/数据复用线中获得数据信息
B:
原理——应用三态门
1):
电路
INOUT
/DEN
注:
IN——地址/数据复用线(CPU)
OUT——数据总线DB(存储器,I/O)
/DEN——数据有效控制线(三态门)
2):
真值表
/DEN
IN
OUT
L
L
L
L
H
H
H
L
Z
H
H
Z
若:
/DEN=L,则OUT=IN
若:
/DEN=H,则OUT为高阻
3):
工作过程
T1时,/DEN=H,缓冲器输出为高阻态
T2,T3,T4时,/DEN=L,缓冲器为直通态
C:
缓冲器芯片
1):
专用,8286,8287
2):
通用,74LS244,74LS245
5:
双向缓冲器
在控制线/DEN,DT//R作用下,完成数据读写(收发)
A:
电路
注:
AB/DB——地址/数据复用线(CPU)
DB——数据总线(MEM,I/O)
B:
分析
1):
若G1=H,G2=L完成MEM→DB→CPU读(收)
2):
若G1=L,G2=H完成MEM←DB←CPU写(发)
3):
若G1=L,G2=L缓冲器为高阻态
4):
若G1=H,G2=H此种情况绝不能发生
B:
真值表
/DEN
DT//R
G1
G2
L
L
H
L
L
H
L
H
H
L
L
L
H
H
L
L
读
写
高阻
高阻
二:
最小工作方式下的工作时序
1:
复位时序(52页)
A:
当RESET=H持续4个时钟周期,8086CPU复位
B:
复位后,CS:
IP=FFFH:
0000H
C:
8086CPU从实际地址FFFF0H处开始执行JMP指令
2:
读时序(53页)
A:
分离地址线
T1时,ALE=H,锁存器片选有效,地址锁存
T2,T3,T4时,ALE=L,锁存器片选无效,地址保持
B:
T2时,缓冲
C:
分离数据线
T1时,/DEN=H,缓冲器片选无效
T2,T3,T4时,/DEN=L,缓冲器片选有效
D:
读数据
T3,T4时,/DEN=L,DT//R=L,/RD=L,/WR=H
若M//IO=H,CPU经数据总线DB从存储器单元中读数据
若M//IO=L,CPU经数据总线DB从I/O端口中读数据
3:
写时序(55页)
A:
分离地址线
T1时,ALE=H,锁存器片选有效,地址锁存
T2,T3,T4时,ALE=L,锁存器片选无效,地址保持
B:
分离数据线
T1时,/DEN=H,缓冲器片选无效
T2,T3,T4时,/DEN=L,缓冲器片选有效
C:
写数据
T3,T4时,/DEN=L,DT//R=H,/RD=H,/WR=L
若M//IO=H,CPU经数据总线DB向存储器单元中写数据
若M//IO=L,CPU经数据总线DB向I/O端口中写数据
§2-98086CPU对存储器的组织
一:
存储器的组织
1:
存储器的组织方式
按字节组织,每一个存储单元仅存放8位二进制数,若需一次R/W16位数据,则应从相邻两存储单元中分别取8位数据构成16位数据
2:
存储器的存数原则
A:
按字节存放时,从低地址单元到高地址单元顺序存放
B:
按字存放时,相邻地址单元中,低地址单元存放低字节,
高地址单元存放高字节
3:
存储器的地图表示
数据
35H
4AH
地址
2000H
2001H
4:
存储器的规则存放与非规则存放
用于字(16bit),双字(32bit)存放时,对字节(8bit)存放无效
A:
规则存放,从偶数地址单元开始存放字或者双字,
即要求A0=0
B:
非规则存放,从奇数地址单元开始存放字或者双字,
即要求A0=1
5:
控制线/BHE,地址线A0对数据传送的作用
A:
关于存储器的奇偶库
为解决存储器单元按8位数据组织,面8086CPU可一次读写16位数据的矛盾,采用了存储器的奇偶库方式
B:
存储器奇偶库的控制
1):
偶库存储器的片选控制地址线A0=L
奇库存储器的片选控制控制线/BHE=L
2):
偶库存储器与8086CPU的数据线D0~D7
奇库存储器与8086CPU的数据线D8~D15
C:
/BHE,A0的作用(62页)
////BHE
A0
读写数据的位数
0
10
奇库,偶库片选有效,16位数据传送
0
11
奇库有效,偶库无效,D8~D15数据传送
1
0
奇库无效,偶库有效,D0~D7数据传送
1
1
奇库,偶库片选无效,无数据传送
二:
存储器的分段
解决20位实际地址与16位寄存器之间的矛盾
1:
分段方式连续分,分离分,重叠分
2:
段内容量64KB
3:
段基地址段首地址
4:
偏移地址段内偏移地址
三:
实际地址与逻辑地址
1:
实际地址20位物理地址
2:
逻辑地址16位段基地址及16位偏移地址
四:
堆栈
1:
堆栈的作用
A:
将需要放入堆栈的数据入栈,将需要调出堆栈的数据出栈
B:
在调用过程及中断服务程序时保护现场——相应数据入栈
在返回过程及中断服务程序时恢复现场——相应数据出栈
2:
堆栈使用原则
先进后出原则注:
指令队列是先进先出原则
3:
堆栈段,堆栈底,堆栈顶
A:
栈段堆栈段段首地址在段寄存器SS中
B:
栈底定义堆栈长度时确定
C:
栈顶由寄存器SP中的值确定,栈顶的物理地址为SS:
SP
注:
当定义堆栈后还未使用相关堆栈操作指令时,栈顶等于栈底,汇编程序设计中,若不定义堆栈,系统将自动生成一定长度的堆栈存储区
4:
栈顶指针寄存器SP中值的自动变化特点
A:
对8位机
1)入栈(SP)–1—→(SP)
2)出栈(SP)+1—→(SP)
B:
对16位机(8086CPU)
1)入栈(SP)–2—→(SP)
2)出栈(SP)+2—→(SP)
《例》(65页图2-32)
1定义堆栈
栈段(SS)=1050H,栈长=14H,
栈底=0012H或者为1050H:
0012H
定义时栈顶等于栈底,(SP)=0012H
2当前栈顶
经一些操作后,图示当前栈顶(SP)=0008H
3执行入栈指令PUSHAX
A:
(SP)–2—→(SP)=0006H
B:
(AX)=1234H—→[0006H]
4执行出栈指令POPBX
A:
[0006H]—→(BX)=1234H
B:
(SP)+2—→(SP)=0008H
5执行出栈指令POPAX
A:
[0008H]—→(AX)=BBAAH
B:
(SP)+2—→(SP)=000AH
注:
入栈时工作步骤,先(SP)–2—→(SP),后将数据入栈
出栈时工作步骤,先将数据出栈,后(SP)+2—→(SP)
五:
8086CPU对存储器的分配
1:
中断向量表存储区00000H~003FFH1KB
2:
系统复位后指令存储区FFFF0H~FFFFFH16字节
3:
显示缓存存储区
A:
单显B0000H~B0FFFH4KB字符显示
B:
CGAB8000H~BBFFFH16KB图形显示
C:
VGAA0000H~图象显示
4:
其余为工作存储区
§2-10I/O端口组织
一:
统一编址方式MOTOROLA方式
MEM,I/O共用寻址空间
1:
优点不需要存储器,I/O端口选择控制线,专用指令
2:
缺点存储器,I/O端口占用共同的寻址空间
二:
分别编址方式INTEL方式
MEM,I/O分别有寻址空间
1:
优点存储器,I/O端口分别寻址,扩展了寻址空间
2:
缺点需要专用控制线及专用指令
《例》8086CPU控制线M//IO=H存储器寻址,
M//IO=LI/O端口寻址
存储器操作指令为MOV,
I/O端口操作指令为IN及OUT
作业:
2.3,2.6,2.11,2.12,2.13,2.15,2.18