1
微机原理及应用
主讲:谢维成
http://xweicheng.ys168.com
scxweicheng@yahoo.com.cn
2
第
第
2章
章
IA-32 结构微处理器
结构微处理器
1、IA-32结构微处理器的概要历史
2、IA-32结构微处理器的功能结构
3、IA-32结构微处理器的执行环境
3
2.1 IA-32结构微处理器的概要历史
IBM PC机的发展简史
名称 推出年代 采用 CPU 特点
IBM PC 1981 8088
准 16 位微机
内存寻址 1MB
DOS 操作系 统
IBM PC/XT 1983 8088
比 IBM PC 多一 个 10MB 硬盘
IBM PC/AT 1984 80286
内存寻址增 至 16MB
具有虚拟存 储器 功能
Windows 操作 系统
386 机
486 机
Pentium
Pentium II
Pentium III
1986
1990
1993
1997
1999
80386
80486
Pentium
Pentium II
PentiumIII
内存容量更 大 32MB、 64MB
支持虚拟 8086 模式
可执行多任 务
支持多媒体 、网 络技术
4
2.2 IA-32 微处理器的功能结构
微处理器的功能结构
2.2.1 Intel 8086 CPU的功能结构
2.2.2 Intel 80386、 486CPU的结构
5
2.2.1 Intel 8086 CPU的功能结构
(3版P36;4版P43)
8086(8088)CPU从功能上分成两大部分:
1、总线接口单元BIU(Bus Interface Unit)
BIU负责与存储器接口,BIU负责从内存的
指定部分取出指令,送至指令流队列中排队
(8086指令队列6字节,8088的指令队列4字
节);在执行指令时所需要的操作数
2、执行单元EU(Execution Unit)
EU负责指令的执行
6
7
Internal Microprocessor Architecture
SI
DI
BP
SP
DH (DX) DL
CH (CX) CL
BH (BX) BL
AH (AX) AL
EAX
Accumulator
EBX
Base index
DR
ECX
Count
EDX
Data
ESP
Stack pointer
PR
EBP
Base pointer
Destination
index
EDI
IR
ESI
Source index
8
Internal Microprocessor Architecture
FLAGS
IP
EIP
EFLAGS
Instruction pointer
Flags标志寄存器
GS
FS
SS
ES
DS
CS
Code代码段
Data数据段
Special purpose registers
Extra 附加段
Stack堆栈段
Segment registers
9
指令指针
控制
ROM
控制部件
地址生成
(U流水线 )
地址生成
(V流水线 )
ALU
(U流水线 )
ALU
(V流水线 )
整数寄存器组
桶形移位器
8K字节数据
高速缓存
TLB
浮点部件
控制
寄存器组
加法
除法
乘法
总
线
部
件
页
面
部
件
预取缓冲器
指令译码器
8K字节代码
高速缓存
TLB分支目标
缓冲器
分支检验
与目标地址
预取
地址
控制
64位
数据总线
32位
地址总线
32位地址总线
64位数据总线
256
32
32
32
32
32
32
Pentium内部结构
10
2.3 IA-32 CPU的执行环境
的执行环境
? 2.3.1 操作模式
? (1)保护模式
? (2)实地址模式
? (3)系统管理模式(SSM)
? 2.3.2 基本执行环境概要
? (1)地址空间
? (2)寄存器组
11
2.3.3 8086/8088的存储器组织 (P50-51)
1.存储单元的地址和内容
存储器以 字节 为单位存储信息,每个
存储(字节)单元有一个地址,地址用
16进制格式表示,如:0000H ,
0001H
…
000AH
…
000FH
…
, 16位二进制数
可表示的地址范围为0~65535。 用 16进
制表示为:0000H ~ FFFFH。计算机中讨
论存储器容量以2 =1024为基本单位,
称为 1K字节。
10
12
? 内存: 内 存 是 存 储 程序和数据的部件, 由地址译码器、内存单
元等构成 。
?内存单元: 存储信息的基本单元。 每 片内存芯片有若干个内存
单元。 每个单元可存储 1位或多位 (2
N
位 )等二进制数 。
n根
C
P
U
地址线 AB
数据线 DB
控制线 CB
地
址
译
码
器
11001100
00110011
10101010
11110000
10001000
地址 00...0000
地址 00...0001
地址 00...0010
地址 00...0011
地址 11…1111
内存结构示意图
13
z内存单元的地址:
为区分各内存单元,每个内存单元对应有一个地址。
地址线上的数据经译码后 只有唯一的内存单元被选中 。
z内存单元的内容: 每个内存单元所存储的二进制数据。
n根
C
P
U
地址线 AB
数据线 DB
控制线 CB
地
址
译
码
器
11001100
00110011
10101010
11110000
10001000
地址 00...0000
地址 00...0001
地址 00...0010
地址 00...0011
地址 11…1111
14
z对内存的读 /写操作
? CPU发出地址信号,选中相应的内存单元。
?若是 读操作 , CPU发出内存读控制信号,
被选中的内存单元将其内容经数据总线送入 CPU。
若是 写操作 , CPU发出内存写控制信号,
CPU将欲写的内容经数据总线,写入被选中的内存单元。
n根
C
P
U
地址线 AB
控制线 CB
地
址
译
码
器
11001100
00110011
10101010
11110000
10001000
地址 00...0000
地址 00...0001
地址 00...0010
地址 00...0011
地址 11…1111
数据线 DB
15
78H
1AH
译
码
器
6FH
3BH
存储单元的地址和内容
A
15
~A
0
…
0000H
0001H
0002H
0003H
1A78H
1A79H
1A7AH
1A7BH
图2-3
16
设2号单元中存放的内容为 78H, 表 示为:
(0002H)= 78H
如果数据以 字 为单位,则占用连续的两个
字节单元,且用低地址表示:
(0002H)= 1A78H
若 0002单元的内容为 一个地址 ,而
(1A78H)=3B6FH,则可记为((0002H))= 3B6FH
17
2.存储器地址的分段:
存储器地址的分段:
8086/8088有20条地址线,其寻址范围
为:2
20
=1048576=1024KB=1M(字节),地
址从00000~FFFFFH
但8086/8088中有关地址的寄存器都是
16位的,寻址范围最多为64K B。那么16位
字长的机器里用什么办法提供2 0位地址?
采用存储器地址分段的办法解决。
我们编程时可把存储器划分成段,每段
最大可寻址64K B,这样段内地址可用16位
表示。
18
例我们可这样分段:
00000~0FFFFH 第1段
10000~1FFFFH 第2段
20000~2FFFFH 第3段
┆
E0000~EFFFFH 第15段
F0000~FFFFFH 第16段
每段64KB,共16段
19
其实不一定这样划分,每段大小可任
意,段的起始地址亦可任意。
在1M B的存储器中,每一个存储单元
都有一个唯一的20位地址,称为该存储
单元的 物理地址 (又叫实际地址).
另一种叫 逻辑地址 ,由两部分组成:
段基址 和 偏移量 。程序中不能使用20位
的物理地址,而使用16位逻辑地址。20
位物理地址由16位段地址和16位偏移地
址组成。
20
计算方法如下:
10H×段地址+偏移地址=物理地址
一个物理地址可对应多个逻辑地址
例: 10145H可对应 10100+45
也可对应 10140+05
对应前面提到的四个段寄存器CS、DS、SS
和ES,有各自的用途:
取指令码时用 CS+IP 堆栈操作时用 SS+SP
地址:1010H:0045H = 10145H
段地址 偏移地址 物理地址
计算方法:段地址左移4位+偏移地址=物理地址
10100H +0045H = 10145H
0001 0000 0001 0000 0000
0000 0000 0100 0101
0001 0000 0001 0100 0101
21
涉及一个操作数时用
DS+16位偏移量
ES+16位偏移量
各段在存储器中的分配一般由操作
系统负责,也允许编程人 员指定所占的
内存区。
CPU内物理地址计算过程及在存储器中
的寻址过程 (4版 P50-51 ; 3版 P37)
22
* 8086/8088中的
中的
I/O端口
端口
MCS与外设的连接都是通过I/O芯片,
每个芯片有一个或一个以上的端口 ,每个
端口分配一个地址(与存储器地址不是一
码事),8086/8088允许有256个端口或最
多65536个端口(8位),两个相邻的8位
端口可组成一个16位端口。
23
2.3.4 8086/8088中的寄存器组
中的寄存器组
DS
ES
SS
CS
IP
数据暂存
器
执行部件
控制电路
指令译码器
总线
接口
控制
电路
A
X
BX
C
X
D
X
AH
BH
CH
DH
SI
DI
BP
SP
AL
BL
CL
DL
寄存器
组
BIU
A
B
D
B
C
B
地
址
加
法
器
指
令
队
列
PSW
标志寄存
器EU
运
算
器
器
寄存器组
AB
DB
CB
地
址
加
法
器
指
令
队
列
PSW
标志寄存
器
运
算
器
Intel 886/8088 编程结构
8086/8088的寄存器组
共有 14个 16位寄存器 ,
AX,BX,CX,DX,
SI,DI,SP,BP,DS,ES,SS,CS,PSW,IP.
其中:
AX、 BX、 CX、 DX
又可分成两个 8 位寄存器
(AH,AL;BH,BL;CH,CL;DH,DL.)
其它 10个只能作 为 16位寄存器。
(3版P36;4版P43)
24
Destination Index
目的变 址寄存 器
SI
DI
BP
SP
AX 累加器 Accumulator
BX 基数寄存 器 Base
CX 计数寄存 器 Count
DX 数据寄存 器 Data
AH
BH
CH
DH
AL
BL
CL
DL
IP
PSW
DS
ES
SS
CS
数据段寄存 器 Data Segment
附加段寄存 器 Extra Segment
堆栈段寄存 器 Stack Segment
代码段寄存 器 Code Segment
Processor Status Word
状态标 志寄存 器
Instruction Pointer
指令指针寄 存 器
变 址
寄存器
段寄存器
控制寄存 器
通
用
寄
存
器
Source Index
源变址 寄 存器
Base Point
基址指 针 寄存 器
Stack Point
堆栈指 针寄存 器
指 针
寄存器
数 据
寄存器
(3版P35;
4版P53)
25
** 8086/8088的标志寄存器
的标志寄存器
**标志寄存器为一个16位寄存器,如下示:
14
D
12
D
10
D
8
D
6
D
4
D
2
D
0
D
OF DF IF TF SF ZF
AF PF CF
这9个标志位分为两类:
状态标志: CF、PF、AF、ZF、SF、OF
控制标志:TF、IF、DF
26
六个 状态标志 含义如下 :
1.进位标志CF
最高位产生进位或借位时,则 CF=1, 否
则CF=0
2.奇偶标志PF
运算结果低8位中1的个数为偶,则P F=1,
否则PF=0
3.辅助进位标志AF
当D
3
向D
4
有进位或有借位时,则A F=1,
否则AF=0
27
4.零标志ZF
运算的结果为零,则ZF=1,否则ZF=0
5.符号标志SF
运算的结果最高位为1,则SF=1,否则SF=0
6.溢出标志OF
算术运算中, 补码运算结果超出了带符
号数的表示范围 ,即:
对 字节 运算,结果超出 -128~+127
对 字 运算,结果超出 -32768~+32767
则OF=1,否则OF=0
28
微机中一般用如下办法判断:
加法 运算根据 进位 判断,示意如下:(其
中 ≤ 表示有进位; × 表示无进位。)
67
DD ←←
67
DD ←←
1415
DD ←←
1415
DD ←←
或
≤
≤
≤
≤
×
×
×
×
对字节
则 OF=1
对字
否则OF=0
对 减法 ,根据 借位 判断。
29
下面举两个例子:
例1: MOV AL,4FH 0100 1111
ADD AL,31H + 0011 0001
1000 0000
对标志影响则为:
CF=0,PF=0,AF=1,ZF=0,SF=1,OF=1
CF: D
7
未产生进位; PF: 1的个数为奇;
AF: D
3
有进位; ZF: 结果非零;
SF: 最高位为1; OF: 结果为128
30
例2 :MOV AL,4BH
OR AL,31H
其运算为: 0100 1011
∨ 0011 0001
0111 1011
参阅P438中 (4)逻辑运算
OR OF CF AF SF ZF PF
0 0 × ↑↑↑
置0 不定 有影响
故SF=0,ZF=0,PF=1,而OF=CF=0
31
控制标志有三个,它们是:
7.跟踪标志TF
若 TF=1, 则 CPU按 单步方式执行指令,以便于调试.
8.中断允许标志IF
如 果 IF=1, 允 许 CPU接收外部的可屏蔽中断请求。
若IF=0,则不允许接收.
9.方向标志DF
如果D F=1, 使串操作指令按自动减 量修 改地 址 。
若DF=0,则按自动增量修改地址.
在DEBUG调试程序中提供了除TF以外,测试各
个标志位的手段.请见P29表1-5
32
** PC系列微机指令执行过程
系列微机指令执行过程
**微机系统的主要性能指标
1.字长
指计算机一次可处理的二进制数的位
数。它取决于ALU和通用寄存器 的 位 数 。 字
长越长,所能表示的数据精度就越高,其
硬件成本也高。
33
2.运算速度
一般用每秒所能执行的指令条数来代表。
不同类型机器的指令执行时间不同,故运算
速度的计算方法也不同。
(1)平均运算速度。方法是按照不同类型指令
出 现 的 频 度 , 乘 上 不 同 系 数 ,得到一个统计平均
值。它采用MIPS(即百万条指令/秒)作单位。
(2)给出C PU的主频(一般以M Hz为单位)和每条
指令的执行时间。
(3) 用执行时间最短的指令为标 准来 估算 速度 。
34
3.存储器容量
是计算机信息量大小的一个指标
1024B →1KB → 2
10
(千字节)
1024KB→1MB → 2
20
(兆字节)
1024MB→1GB → 2
30
(吉字节)
1024GB→1TB → 2
40
(太字节)
35
** IBM PC系列微机系统简介
系列微机系统简介
IBM PC系列微机采用Intel 80X86微
理器(包括80286、80386、80486等)和
MS-DOS或PC-DOS操作系统。
IBM PC和PC/XT分别采用8086和8088
CPU及IMB内存,只支持单任务操作系统。
PC/AT、 PC/386、PC/486分别采用80286、
80386、80486作CPU,其内存在8MB以上,
支持多用户多任务操作系统。
PC/586、 PC/686则是采用Pentium、
Pentium Pro作CPU,其运算速度,性能都
有很大提高。
36
IBM PC系列微机系统由机箱、键盘、鼠
标、C RT显示器和打印机等几个部分组成。
主机装在机箱内,是系统的 核心部分。它
括:
?主机板(系统板)
?视频卡(显示器适配器)
?软驱及其适配器
?硬驱及其适配器
?光驱及其适配器
?多功能卡,包括并行口及串行口等
?电源
37
** IBM PC 32位机的基本配置
位机的基本配置
内存: 16~128MB
软驱: 1.44MB(3.5英寸)一个
硬驱: 160MB~20GB一个
串并口: 串行口2个,并行口1 ~2个
显示器: 分辨率1024×768的彩显(14寸、
15寸、17寸).
另外,若使之成为 多媒体计算机 ,可配
置相应的多媒体功能卡,包括:声卡、视
频卡、压缩/解压缩卡、TV转换卡等。