1
第 2章 微型计算机基础本章要点:
微型计算机的组成
微型计算机的工作原理
Intel8086/8088微处理器
微型计算机的存储器
微型计算机的总线
2
2-1微型计算机基本结构当前微型计算机在人类社会中的应用无处不在,但微型计算机是相当复杂的,要了解其工作原理就必须将其分解为若干电路环节,或几大功能模块;每个功能模块又有若干电路部件组成。
微型计算机的基本功能可概括为三大功能能运算、能判断、能决策
3
2.1.1 微型计算机的组成计算机硬件系统主要有微处理器、存储器,I/O接口,I/O设备 及系统总线组成微处理器
( CPU)
存储器
( memory)
I/O接口输入设备
( input)
I/O接口输出设备
( output)
I/O接口图 2-2 计算机硬件系统地址总线控制总线数据总线
4
1、硬件系统计算机硬件系统主要有微处理器、存储器,I/O接口,I/O设备 及系统总线组成
1,微处理器 ( CPU),是利用大规模集成电路技术做成的芯片完成计算机系统内各部件统一协调和控制工作 。
2,存储器:分为内存储器和外存储器两种存储器的主要功能是存放各类程序和数据信息
3,I/O设备:
用于从计算机外部将数据和程序输入到内部,供计算机处理或将处理后的结果送出 。
4,I/O接口,负责连接外部设备和系统总线,与 CPU进行信号联络等工作 。
显示器卡,声卡,网卡,键盘接口,USB接口 。
5,系统总线,从处理器引出的若干信号线,CPU与存储器或 I/O设备进行信息交换 。
在某一时刻,只能由一个总线主控设备来控制总线
在某一时刻只能有一发送者发送信号,但可以有多个设备从总线上同时获得信号 。
通过总线插槽来与接口板连接 。
5
1)微处理器 CPU
运算器 ALU,完成各种算术和逻辑运算。
控制器,由指令寄存器、指令译码器和操作控制电路组成。发出各种控制信号,协调各部件的工作。
寄存器组,CPU内部的若干存储单元,用于暂存数据或地址信息,各寄存器都有相应名称及特定作用。
6
图 2-3微处理器典型结构示意图
7
2)存储器存储器(内存)是计算机中仅次于 CPU的核心部件,由它向 CPU提供要运行和处理的数据 。
存储器外部存储器内部存储器
(光盘、软盘、硬盘)
( ROM,RAM) CPU
数据数据结果注,CPU不能直接和磁盘交换数据,必须由内存来交换。
8
存储单元(内存单元)
将存储器划分成若干个基本的存储单位,
称为 存储单元 。给每个存储单元从 0开始顺序编号,称为 存储单元的地址 。
内存
0
1
2
3
.
.
.
.
127
1 0 0 1 1 1 0 0
0 1 1 0 1 1 1 1
1 1 1 0 0 0 1 1
存储单元
位 (bit),计算机的最小信息单位,
即一位二进制数( 0或 1)
字节( Byte),1 Byte=8 bit
一个存储单元可以存储一个字节即 8bit的信息。
8088/8086CPU的寻址为 20位地址,
内存地址为 00000H~FFFFFH,可寻址 220,即 1MB
9
内存单元中存放的内容(指令和数据)
指令,是告诉计算机做什么工作。
数据,是计算机( CPU)要处理的对象。
注:指令和数据在形式上完全相同,都是一组二进制信息,但应用上意义不同。
例:
数据 89D8H —— 1000100111011000
指令 MOV AX,BX—— 1000100111011000
10
内存的操作( CPU对存储器的读写)
CPU可以从存储器中取出数据进行处理(读)
CPU将处理后的数据放到存储器中保存(写)
思考:
CPU如何选择要读 /写的对象(寄存器,ROM、
RAM、接口)
CPU如何找到要处理的数据。
11
CPU传送的三种信息存储单元的地址 (地址信息)
选择芯片、读或写的命令 (控制信息)
读或写内存的数据内容 (数据信息)
C
P
U 2331
08
9C
3B
12
5
4
3
2
1
0地址总线 3
数据总线控制总线
08
读内存命令 →
机器码:
101000000000001100000000
汇编指令
MOV AX,[3]
12
地址总线 AB
C
P
U
地址总线内存数据总线控制总线访问地址为 12的内存单元时,地址总线上传送的内容?
一个 CPU有 N根地址线,则可说这个
CPU的地址总线宽度为 N。可寻址空间为 2N个存储单元。
思考,1个 CPU的寻址空间为 1KB,那么它的地址总线的宽度为多少?所能表示的地址范围为多少?
13
数据总线 DB
数据总线的宽度决定了 CPU和外界的数据传送速度,N根数据线一次可以传送 N个 bit的数据。
8088
C
P
U
数据总线内存地址总线控制总线
14
控制总线 CB
CPU对外部器件的控制是通过控制总线进行的,控制总线是一些不同控制线的集合。有多少根控制总线,就意味着,
这个 CPU提供了对外部器件的多少种控制,所以 控制总线的宽度决定了 CPU对外部器件的控制能力。
15
1、存储程序计算机
2.1.2 微型计算机的工作过程是指将要处理的问题的步骤和所需的数据事先送入存储器中保存起来,工作时由计算机的控制部件逐条取出并执行,从而使计算机自动连续进行运算。
16
1)程序和指令
程序,一组特定顺序的操作命令
指令,程序中的每一条基本命令
机器指令,计算机唯一能识别的机器代码( 2进制编码)
指令系统,机器指令的集合
操作数,指令中处理的对象
17
2)存储程序工作原理指把程序和数据送到具有记忆功能的存储器中保存起来,计算机工作时只要给出程序中的第一条指令的地址,控制器就可依据存储程序中的指令顺序周而复始地取出指令、分析指令、执行指令,直到执行完全部指令为止。
注意两点:
程序中的指令和数据都为二进制编码,存放在存储器中
程序中的指令属于该机器的指令系统
18
2、微机的工作过程微机的工作过程就执行程序的过程,
即周而复始地取指令和执行指令的过程。
图 2-7所示
19
3、一个程序工作的例子例:计算 5+8=
指令名称 助记符 机器码 指令长度 操作数据传送 MOV AX,n B0H,n 2
加法 ADD AX,n 04H,n 2
停机 HLT F4H 1
几条汇编指令
MOV AX,5
ADD AX,8
HLT
20
2.2 Intel 8088/8086微处理器
8086是 Intel系列的 16bit微处理器,属第三代 。
8086有 16bit数据总线和 20bit地址线,可寻址
1M空间,8088内部为 16位数据线,对外为 8位数据线,其他和 8086相同,所以 也称 8088为准
16位机 。
8086采用单一 +5V电源和单相时钟,频率为
5MHZ。
20位
AH AL
BH BL
CH CL
DH DL
SP
BP
DI
SI
ALU
运算寄存器标志执行部件控制电路
16位
CS
DS
SS
ES
IP
内部暂存器
8位
1 2 3 4 5 6
执行部件
( EU)
输入 /输出控制电路
16位外部总线指令队列缓冲器总线接口部件( BIU)
通用寄存器 地址加法器一,8086CPU的功能结构
1,总体功能结构
8086CPU的结构框图
22
8086从功能结构来讲,分为两大部分,即总线接口部件 BIU(Bus Interface Unit )和 执行部件 EU(Execution Unit)。
(1) BIU部件由 段寄存器,指令指针,地址加法器,
指令队列缓冲器 和 控制电路 等部分组成。
23
在执行指令时,如要取操作数,则也由 BIU从内存 或 I/O接口 指定区域取出,送给 EU部件去执行 。
BIU负责与存储器,I/O接口电路传送信息 。
BIU负责从指定内存单元取出指令,送到指令队列缓冲器中排队 。
指令队列缓冲器 是一个 6个字节 的 RAM存储器
(8088为 4个字节 ),队列中最多可同时存放 6个字节的指令,取来的指令是按字节顺序存放的 。
当队列中有两个以上的指令字节空的时候,
BIU会自动地执行总线操作,继续取指令 。
24
(2) EU部件由 ALU,通用寄存器,标志寄存器 和 控制电路 组成,负责指令的执行 。 ALU,寄存器和数据传输通路均是 16bit的 。
25
若执行的是一条 转移指令,则存放在指令队列缓冲器中的指令就没有用了,应到新的地址单元去取出 。 BIU新取出的第一条指令将直接送到 EU中去执行,随后重新填充指令队列缓冲器 。
EU从 BIU中的指令队列缓冲器中取得指令和数据 。
当指令要求将数据 写 到 存储器 和 I/O电路,
或需从 存储器 和 I/O电路 中 读 取数据时,EU
向 BIU发出请求,BIU自动完成这些操作 。
26
(3) 8086与传统微处理器指令执行过程比较取指 3 执行 3 取指 4?执行 2取指 2执行 1取指 1
传统微处理器的执行方式传统微处理器取指与执行串行进行,
CPU的工作效率低 。
27
取数据 取指 5取指 4取指 3取指 2取指 1BIU
执行 4执行 3执行 2执行 1等待EU
8086的指令执行方式
8086CPU取指与执行并行进行,大大减少了等待取指令所需时间,提高了 CPU
的工作效率 。
2,寄存器结构
8086CPU 内部寄存器
DLDH
CLCH
BLBH
ALAH
通用寄存器
AX
BX
CX
DX
SP
BP
SI
DI
数据寄存器
CS
DS
SS
ES
IP
FLAG
变址寄存器指针寄存器堆栈指针基数指针源变址目的变址指令指针状态标志代码段数据段堆栈段附加段段寄存器控制寄存器
29
(1) 通用寄存器
8个 16bit通用寄存器 。
SP— 堆栈指针,存放堆栈栈顶的现行地址,
与 SS堆栈段寄存器一起方可确定堆栈的实际地址 。
BP— 基址指针
SI— 源变址寄存器
AX,BX,CX,DX 4个 16bit的通用数据寄存器,它们的高 8bit AH,BH,CH,DH与低 8bit AL,BL,CL,DL又可分别看成 8个
8bit的寄存器 。
DI— 目的变址寄存器
30
(2) 控制寄存器
IP (Instruction Pointer) 指令指针与
PC类似,但有区别:
a,PC是指向下一条即将要执行的指令,而
IP一般是指向下一次要取出的指令 。
b,在 8086中 IP要与 CS代码段寄存器的内容一起,才能得到指令的实际地址 。
31
TF SF ZF AF PFOF DF IF CF
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
标志寄存器格式
a,6个状态标志位,即 CF,PF,AF,ZF,SF和
OF。
进位标志 CF(Carry Flag):
FLAG(标志寄存器 )为 16bit,其中 9位有定义 。
当结果的最高位 (字节- D7,字- D15)产生进位 (加法运算 )或借位 (减法运算 )时,CF=1,
否则 CF=0,移位和循环指令也影响 CF。
32
奇偶标志位 PF(ParityFlag):
若结果中,1” 的个数为偶数,则 PF=1,
否则 PF=0。
辅助进位标志 AF(AuxitiaryCarry Flag):
在低半字节向高半字节有进位或借位时 AF=1,否则 AF=0。
零标志 ZF(Zero Flag):
当运算结果为 0时 ZF=1,否则 ZF=0。
符号标志 SF(SignFlag):
SF等于最高位,对于带符号数,最高位为符号位,SF=1运算结果为负,SF=0为正 。
33
溢出标志 OF(Overflow Flag):
带符号数运算结果超出其表达范围时 ( 字节数:
-128 ~ +127,字 类 型 数,-32768 ~ +32767 ),
OF=1,否则 OF=0。
用表达式给出


141515
677
溢出 CC
CC
OF
(字节运算 )
(字运算 )
例:① 2345H+3219H
② 6400H+7A3CH
CF=0 PF=0 AF=0 ZF=0 SF=0 OF=0
CF=0 PF=1 AF=0 ZF=0 SF=1 OF=1
34
b,3个控制标志位
追踪标志 TF(Trace Flag):
TF=1,处理器进入单步方式,以便调试,
CPU每执行一条指令自动产生一个内部中断以利于检查指令的执行情况; TF=0为连续工作方式 。
中断允许标志 IF(Interrupt-enable Flag):
IF=1,允许 CPU响应外部的可屏蔽中断请求; IF=0则禁止响应 。 IF对外部非屏蔽中断及内部中断不起作用 。
35
方向标志 DF(Direction Flag):
在串操作指令中,DF=0时,变址指针自动增量,DF=1时,则自动减量 。
36
(3) 段寄存器
CS— 代码段寄存器,用于定义代码段基地址,该段用于存放指令代码 。
DS— 数据段寄存器,用于定义数据段基地址,该段用于存放程序变量 。
有 4个 16bit的段寄存器
37
SS— 堆栈段寄存器,用于定义堆栈段基地址,
该段作堆栈区使用 。
ES— 附加数据段,用于定义附加段基地址,
与 DS类似 。
上述 4个段在 8086寻址的 1MB空间内,其位置不受限制,可连续排列,分隔排列,部分重叠甚致全部重叠 。
38
二、引脚信号及功能最小模式:即由 8086组成的单处理器系统,
所有的总线控制信号直接由 8086直接产生,
故系统中的总线控制逻辑电路被减到最少 。
最大模式:即由 8086组成的中等规模或者大型的系统 。 包含两个或多个微处理器,
8086为主处理器其它的为协处理器 。
8086的两种工作模式
39
二,8086/8088 CPU芯片的引脚及其功能
40条引脚,双列直插式封装采用分时复用地址数据总线两种模式公用的引脚的定义
AD0~ AD7:分时复用的地址数据线。双向。
A19/S6~ A16/S3:分时复用,输出引脚。
GND,地线(两个),分别为引脚 1和 20;
RD 读,三态输出
READY:准备就绪,输入。插入 Tw状态
TEST:输入,测试信号。等待状态结束
INTR:输入,可屏蔽中断请求。
NMI:输入,非可屏蔽中断请求,上升沿有效。
RESET:输入,复位。 CPU从 FFFF0H开始执行程序。
CLK:输入,时钟,处理器和总线控制器定时操作
Vcc:电源,+5V。
40
1,最小模式下引脚信号及功能:
(1) 地址 /数据总线 AD7~ AD0(双向、三态 )
在一个总线周期的第一个时钟周期用于传送低 16bit地址信息,并用地址锁存器锁存以免丢失,
其它时钟周期可用于传送数据信息,分时传送 。
当 8086执行中断响应周期,保持响应周期时,这些引脚处于高阻状态 。
41
(2) 地址 /状态信号线 A19/S6~ A16/S3(输出、三态 )
在总线周期的第一个时钟周期 (T1)用于输出地址信号的最高 4bit并锁存 。
其它时钟周期中用来输出状态信号 S6~ S3,
其中:
S6— 低电平,表示 8086当前与总线相连。
S5— 表示标志寄存器中“中断允许位”的状态
(IF)。
S4,S3的组合指出了分段情况。如下表所示。
S4和 S3的组合提供的分段信息表
S4 S3 意 义
0
0
1
1
0
1
0
1
当前正在使用 ES附加段当前正在使用 SS堆栈段当前正在使用 CS或者未使用任何段寄存器当前正在使用 DS数据段
当 CPU 处于,保 持 响 应,状态时,
A19/S6~ A16/S3置为高阻状态 。
若执行 I/O指令,则由于 8086只访问 64K个端口,在 T1周期这 4个引脚为低电平 。
43
下面介绍引脚中的控制信号。
(4) MN/MX最小 /最大模式控制信息低电平 — 8088处于最大模式。
高电平 — 8088处于最小模式。
(5) RD读信号 (输出,三态 )
低电平有效 。 表示将对内存或 I/O端口读操作 。
44
(6) IO/M,存储器 /输入输出控制信息
(输出,三态 )
是区分 CPU进行的存储器还是 I/O访问,
见下表。
RDIO/M 操 作
1
0
0
0
读 I / O端口数据读存储器数据
RD与 IO/M的组合及对应的操作表
45
(7) WR写信号 (输出,三态 )
1
0
0
0
CPU对 I/O端口进行写操作
CPU对存储器进行写操作
WR与 M/IO 的组合及对应的操作表操 作WRIO/M
低电平有效 。 WR与 IO/M 的组合对应的操作如下表所示 。
46
(8) ALE地址锁存允许信号 (输出 )
高电平有效,此信号在 T1状态有效,为地址码锁存的选通信号,送地址锁存器 。
(9) READY准备就绪信号 (输入 )
高电平有效,是从所寻址的 存储器 或 I/O
电路 来的响应信号,用于解决 CPU与慢速存储器或 I/O电路的 同步问题 。 CPU在 T3周期开始采样 READY线,若为低电平,则 T3之后插入 TW等待周期 直到 READY为高电平,进入 T4完成数据传送 。
47
(10) INTR可屏蔽中断请求信号 (输入 )
高电平有效,8086在每一个指令周期的最后一个 T状态采样这条线,若 IF=1,则
8086在执行完当前指令即响应中断 。
(11) INTA中断响应信号 (输出,三态 )
低电平有效,CPU响应外部 可屏蔽中断请求以后,便发出中断响应信号,作为对中断请求的回答 。 此信号在每一个中断响应周期的 T2,T3和 TW周期均有效,为中断矢量的读选通信号 。
48
(12) NMI非屏蔽中断请求信号 (输入 )
边沿触发,该线上的中断请求信号不能用软件屏蔽,电平由低到高,便在当前指令结束后引起中断。
49
(13) RESET系统复位信号 (输入 )
高电平有效,8086要求此信号起码维持
4个时钟周期,若初次加电复位,持续时间不小于 50?s,RESET为高电平时,8086立即结束现行操作,进入内部复位状态,CPU各内部寄存器被设置为 初值,CS=FFFFH,Flag、
IP,DS,ES,SS及其它寄存器均初始化为
0000H。
50
(14) DT/ R数据收发控制信号 (输出、三态 )
为增强数据总线的驱动能力,8086可外接驱动器 8286,DT/R即为 8086输出的数据到收发器 8286的控制信号 。
DT/R— 高电平,8086输出的数据经 8286
送到数据总线;
8086工作在 DMA方式时,DT/R为高阻状态,
在最小模式时因无 8286而不起作用 。
DT/R— 低电平,收发器 8286则把数据总线上的数据传送到 8086。
51
高电平有效 。 系统中其他的总线主设备要获得对总线的控制权时,向 8086发出高电平的 HOLD信号,8086在每个时钟周期的上升沿对 HOLD引脚信号进行检测,若为高电平,
则在当前总线周期结束时,予以响应 。
(16) HOLD保持请求信号 (输入 )
(15) DEN数据允许信号 (输出,三态 )
低电平有效,也是 8086控制外接的数据收发器,低电平时开启收发器,传送数据有效;
高电平时,则禁止传送 。
52
(17) HLDA保持响应信号 (输出 )
高电平有效 。 当 CPU响应保持请求 HOLD时,
便发出 HLDA高电平的应答信号,从而将总线控制权让给发出保持请求的设备,直到该设备又将 HOLD信号变为低电平,CPU才收回总线控制权,将 HLDA信号置为低电平 。
53
低电平有效 。 与 WAIT等待指令结合使用,
当 CPU执行 WAIT指令时,CPU处于空转状态进行等待直到检测到 TEST信号有效时结束,
CPU继续往下执行指令 。
(18) TEST测试信号 (输入 )
(19) CLK系统时钟输入信号时钟信号为 CPU和总线控制逻辑电路提供定时基准 。 常用 INTEL8284A时钟发生器提供 CLK信号 。
2,最大模式下引脚信号及功能若将 8086的 MN/MX引脚接地便工作在最大模式 。 此时仅 24— 31引脚信号与最小模式不同,如下表所示 。
引脚编号 最小模式 最大模式
24
25
26
27
28
29
30
31
QS1
QS0
S0
S1
S2
LOCK
RQ/GT1
RQ/GT0
INTA
ALE
DEN
DT/R
M/IO
WR
HLDA
HOLD
两种模式下 8086的 24~ 31引脚信号表
55
(1) QS1和 QS0指令队列状态信号 (输出 )
QS1和 QS0编码与队列状态表
QS1 QS0 队列状态
0
0
1
1
0
1
0
1
空操作取走指令的第一个字节队列空从队列里取出非第一个操作码字节两信号编码和对应的队列状态如下表所示。
56
这三个状态信号组成的编码表示了当前总线周期是何种操作周期,如下表所示 。
2,1和 0编码与总线周期表S S S
发中断响应信号读 I/O端口写 I/O端口暂停取指令读存储器写存储器无源状态
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
S 总线周期2S 1 0S
(2) S2,S1和 S0总线周期状态信号 (输出,三态 )
57
(3) LOCK总线封锁信号 (输出,三态 )
低电平有效 。 此信号有效时,系统中其他总线主部件不能占有总线 。 此信号由前缀指令 LOCK使其有效,并保持到 LOCK前缀后的一条指令执行完毕 。 另外 8086在两个中断响应脉冲之间,LOCK信号也自动变为有效电平,以防其它部件占有总线 。
58
(4) RQ/GT1和 RQ/GT0总线请求 /允许信号 (双向 )
供 CPU以外的两个处理器用以发出使用总线的请求信号和接收 CPU对总线请求信号的回答信号,请求与允许信号在同引脚上传输,但方向相反 。 其中 RQ/GT0优先级较高 。
59
2.2.5 8086存储器管理
8086采用分段管理的办法实现对 1MB存储空间的管理 (物理地址 00000H~ FFFFFH),
16bit的段寄存器存放了该段的 段首址,那么它是怎样产生 20bit的 物理地址 的呢?
我们通常采用在地址编号能被 16整除的地方开始分段,此时地址的低 4bit均为 0,这时段寄存器只用来存放高 16bit即可,以下有几个概念 。
60
段内偏移量 EA (Effective Address),是指某存储单元离开该段段首址的字节数 。
逻辑地址 (Logical Address),是一对地址,包含段寄存器的内容和段内偏移量,如某条指令的逻辑地址可表达为,CS,IP。
物理地址 PA (Physical Address),是指某个存储单元实际的 20bit的地址,又称绝对地址 。
61
由上面的定义可知:
物理地址 PA=对应段寄存器 × 10H十段内偏移量 EA。
物理地址的形成如下图所示。
物理地址的形成段寄存器值 0000
20位物理地址
19 0
15 0
15 0
偏移地址加法器
16 位 4位
62
例如,若 CS=FFFFH,IP=0000H,则指令所在存储单元的物理地址为:
PA= (CS) × 10H + IP = FFFF0H
当取指令时,自动选择的段寄存器是 CS,
再加上 IP所决定的 16位偏移量,得到要取出指令具体的物理地址:
当涉及到取一个堆栈操作时,自动选择的段寄存器是 SS,再加上 SP所决定的 16位偏移量,得到堆栈操作所需要的 20位物理地址 。
63
当涉及到取一个操作数时,自动选择 DS寄存器或 ES附加段寄存器,再加上 16位偏移量,
得到操作数的 20位物理地址 。 16位偏移量取决于指令的寻址方式 。 如下图所示:
IP
CS
SI,DI或 BX
DS
SP或 BP
SS
代码段数据段堆栈段
64
2.2.6 Intel 8086/8088的时序一,指令周期、总线周期和 T状态
时钟周期:即 CPU工作时钟信号(主频)的周期,也称为一个 T状态。
指令周期:即一条指令从取指到执行完毕所经历的若干总线周期的时间之和。
总线周期:即 CPU对存储器或 I/O端口进行一次读 /写操作所需的时间。
总线时序:指与完成总线操作有关的地址线、数据线、
读写控制线和时钟线等总线信号相互之间的定时关系,
一般用时序图(波形图)表示。
65
一个总线周期
T
1
T
2
T
3
T
4
地址输出 状 态 输 出地 址 输 出地址输出 数 据低=存储器,高= I / O
C L K
A
19
/S
6

A
16
/S
3
A
15
~ A
8
AD
7
~ AD
0
A L E
M / IO
RD OR WR
图 2-21 8088 CPU 的读总线周期
66
准备就绪数据A
7
~ A
0
S
6
~ S
3
A
19
~ A
16
T
1
T
2
T
3
T
W
T
4
C L K
M / IO
A
19
~ A
16
/S
6
~ S
3
A
15
~ A
8
AD
7
~ AD
0
A L E
RD
R / DT
D E N
R E A D Y
高= I / O 低=存储器等待图 2-22 8088 CPU的读 /写等待总线周期
67