燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器
2003微型计算机 No8:
CPU技术内幕之基本计算概念篇
2003微型计算机 No9:
CPU逻辑结构简述推荐文章燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器计算机体系结构 = computer architecture
(计算机系统结构 )
计算机体系结构是程序员所看到的系统的一些属性:
概念性的结构和功能上的表现,这些属性既不同于数据流和控制的组织,也不同于逻辑设计和物理实现。
Amdahl,1964
计算机体系结构是连接硬件和软件的一门学科,它研究的内容不但涉及计算机硬件,也涉及计算机软件。
2.2 IA-32微处理器的功能结构计算机体系结构的含义燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器
“系统结构,是指 概念性结构和功能特性(功能模块),
就相当于动物的器官组成及其功能特性,如鸡有胃,胃可以消化食物。至于鸡的胃是什么形状的、鸡的胃部由什么组成就不是,系统结构,研究的问题了,而是,系统组成,研究的问题。所谓,系统组成,就是在逻辑上如何实现这种功能(功能模块的组成器件),比如,上帝,给鸡设计了一个一定大小的胃,这个胃的功能是消化食物,那消化系统的逻辑实现,就是要通过 鸡喙 吃进食物和砂石,再通过 胃 的蠕动、依靠砂石的研磨来消化食物。而 计算机物理实现,主要着眼于器件技术和微组装技术(器件的物理实现)。拿上面的例子来说,这个胃由哪些组织组成几条肌肉和神经来促使它运动就是 "鸡实现 "。
计算机体系结构(应用)、组成(设计)
及物理实现(制造)
燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器
2.2.1 Intel8086微处理器的功能结构
1,总线接口单元 BIU
由段寄存器( CS,DS,SS,ES)、指令指针寄存器 (IP)、地址加法器、内部寄存器、指令队列缓冲器及 I/O控制逻辑等部分组成。
2,执行单元部件 EU
由通用寄存器组、专用寄存器组、算术逻辑运算单元( ALU)、标志寄存器( FR)和内部控制逻辑组成。
燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器执行单元
AH AL
BH BL
CLCH
DH DL
SP
BP
DI
SI
通用寄存器
CS
DS
SS
ES
I P
内部暂存器总线控制逻辑
1 2 3 4
AX
BX
CX
DX
数据总线运运 算 寄 存器
A L U
标志寄存器外部总线
8088 8位
8086 16位指令对列
8086为 6 字节
16 位执行控制电路总线接口单元地址加法器 20 位
16 位段寄存器指令指针
( EU) ( BIU)
燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器取指 指令执行。。。 取指 指令执行 。。。
。。。
取指指令执行
。。。 取指指令执行
。。。取指 取指指令执行 指令执行。。。
B I U 任务
E U 任务每条指令的执行有取指、译码和执行。
早期计算机指令执行过程:
指令花费时间=取指+指令执行
8088CPU指令执行过程:
指令的重叠操作指令花费时间=指令执行燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器
2.2.2 80386的功能结构燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器
存储器组织拥有 32位数据线和地址线,可以寻址 4GB的物理地址;
内部执行环境(寄存器组)
首次将 32位的寄存器组引入 80x86体系的微处理器中,32位的低半部分向下兼容;段寄存器仍为 16位,段空间为 4GB;
操作模式实地址;保护模式;虚拟 8086模式;
80386的主要特点燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器
2.3 IA-32结构微处理器的执行环境燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器
220=1MB,地址由 00000-FFFFF(H)编码若存放的信息是字节,则按顺序存放若存放的信息是字,则将字的低位字节存放在低地址,高位字节存放在高地址若存放的信息是双字,则将双字的低位字存放在低地址,高位字存放在高地址
2.3.2 基本执行环境
( 1)存储器地址空间( 8086)
燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器
( 2)基本程序执行寄存器燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器实地址方式存储器组织
四个不同的段:代码段存放机器指令;数据段存放数据信息;堆栈段供堆栈使用;附加段通常用来存放附加数据;
8086有四个 16位段寄存器,cs?代码段 ; ds?数据段; ss?堆栈段; es?附加段 。
地址的标准写法为:,段:偏移量,。 注意由于位移可以重叠,所以给出的,段:偏移量,不是唯一的 。 如下列地址均指向同一内存单元:
0000,0123 0002,0103 0008,00A3
0010,0023 0012,0003
燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器
段可以位于内存中的任何位置,段的首地址必须能被
16整除;
若段寄存器存放的是 10H,而偏移量是 100H,下列步骤说明实际物理地址计算过程:
段寄存器,0000 0000 0001 0000 ( 10H)
左偏四位,0000 0000 0001 0000
偏移量,0000 0001 0000 0000 ( 100H)
段加偏移量 0000 0000 0010 0000 0000 ( 200H)
燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器存储器物理地址的形成
逻辑地址 是程序中使用的地址,它由段基址和段内偏移值所组成,段基址与段内偏移值都为 16位的二进制数。
物理地址 也叫实际地址或绝对地址,是 CPU访问存储器时实际使用的地址,为 20位地址。
段地址0 0 0 0
偏移地址物理地址
15 0
15 0
地址加法器
19 0
3
物理地址=段基址 × 16
+段内偏移地址。
燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器
【 例 】 各独立段的分配情况示例 。
设 CS=B000H,DS=1CDEH,SS=4200H、
ES=0150H,它们分别为代码段,数据段,
堆栈段和附加段的段首址 。 自每个段首址开始,各段均占 64KB的范围,各段之间互不重叠 。
燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器
【 例 】 各段相互重叠情况示例。
设 CS=0200H,DS=0400H,SS=0480H,这样代码段、数据段和堆栈段的物理首地址分别为
02000H,04000H和 04800H。其中代码段占
8KB地址空间,数据段占 2KB,堆栈段占 256B,
SP=0100H。如图所示。
燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器
(1)指令指针寄存器 EIP
(2)段寄存器
(3)通用寄存器
(4)程序状态和控制寄存器
2.3.4 基本程序执行寄存器
0?15?16?31
0?15
0?15?16?31?7?8
AL
BL
CL
DL
AX
BX
CX
DX
AH
BH
CH
DH
EAX
EBX
ECX
EDX
EIP
CS
DS
SS
ES
FS
GS
SP
BP
SI
DI
ESP
EBP
ESI
EDI
FLAGSEFLAGS
燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器
EAX 累加器寄存器:存放操作数和结果
EBX 基址寄存器:在 DS段中的数据指针; 存放操作数
ECX 计数寄存器:串和循环操作的计数器
EDX 数据寄存器,I/O指针
0151631 78
AL
BL
CL
DL
AX
BX
CX
DX
AH
BH
CH
DH
EAX
EBX
ECX
EDX
1,通用寄存器基本寄存器:在程序执行时暂时保存中间结果;在进行算术运算和逻辑运算时,通用寄存器任何一个都可以作为源操作数或目的操作数。
SP
BP
SI
DI
ESP
EBP
ESI
EDI
0151631
指针和变址寄存器
ESI 串操作的源指针
EDI 串操作的目标指针
ESP 堆栈指针
EBP 堆栈上数据指针燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器通用寄存器的特殊用途和隐含性质寄存器名特殊用途 隐含性质在输入输出指令中作数据寄存器用 不能隐含
A X,A L
在乘法指令中存放被乘数或乘积,在除法指令中存放被除数或商 隐 含
AH 在 L A H F 指令中,作目标寄存器用 隐 含在十进制运算指令中作累加器用 隐 含
AL
在 X L A T 指令中作累加器用 隐 含在间接寻址中作基址寄存器用 不能隐含
BX
在 X L A T 指令中作基址寄存器用 隐 含
CX 在串操作指令和 L O O P 指令中作计数器用 隐 含
CL 在移位 / 循环移位指令中作移位次数计数器用 不能隐含在字乘法 / 除法指令中存放乘积高位或被除数高位或余数 隐 含
DX
在间接寻址的输入输出指令中作地址寄存器用 不能隐含在字符串运算指令中作源变址寄存器用 隐 含
SI
在间接寻址中作变址寄存器用 不能隐含在字符串运算指令中作目标变址寄存器用 隐 含
DI
在间接寻址中作变址寄存器用 不能隐含
BP 在间接寻址中作基址指针用 不能隐含
SP 在堆栈操作中作堆栈指针用 隐 含燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器
6个段寄存器,保存 16位 段基址,
CS 代码段
SS 堆栈段
DS 数据段
ES 附加段
FS 数据段 F
GS数据段 G
2,段寄存器和存储器分段
指向数据段燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器
3,EFLAGS寄存器燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器(1)状态标志位
CF:进位标志位,当执行一个加法运算指令使最高位产生进位时,或者执行一个减法运算指令使最高位引起借位,则 CF=1;否则 CF=0。
PF:奇偶标志位,若运算结果的低 8位中所含 1的个数为偶数,则 PF=1;否则 PF=0。
AF:辅助进位标志位。当加法运算时,如果第三位往第四位有进位,或者当减法运算时,第三位从第四位有借位,则 AF=1;否则 AF=0。
ZF:零标志位,当运算结果为 0时,ZF=1;否则 ZF=0。
SF:符号标志位,当运算结果的最高位为 1时,SF=1;
OF:溢出标志位,在算术运算中,带符号数的运算结果超出了 8位( +127~-128)或者 16位( +32767~-
32768)数据所能表达的范围时,则 OF=1。
IF:中断允许标志位。若 IF=1,则 CPU可以响应可屏蔽中断请求;
燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器
AF和 OF的区别本质运算后结果超无符号数范围运算后结果超有符号数范围现象结果最高位进位或借位
O = C CS
C
O
燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器
0 0 0 0 1 1 1 1
1 0 0 01 1 1 1
B
B
B
0 1 1 10 0 0 01
CY = 1 CS = 1
O=C CS= 0
C= 1
燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器
(2)DF标志
DF:方向标志位,控制串操作指令的标志。若 DF=0则执行串操作指令后,变址寄存器自动增量。
( 3)系统标志和 IOPL字段
1、中断允许标志 I
2、追踪标志 T
3,IOPL特权级字段燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器条件转移指令
JE / JZ
JNE /JNZ
ZF
JS
JNS
SF
JO
JNO
OF
JP
JNP PF
JCXZ ( CX = 0 转)
JC
JNC
CF
1、根据单个标志位的转移指令说明:指令中的字母 N表示 not,如果不带 N说明标志为 0转移,如果带 N说明标志为 1转移。
燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器
4、指令指针
8086CPU中的指令指针 IP,它总是保存下一次将要从主存中取出指令的偏移地址,偏移地址的值为该指令到所在段段首址的字节距离。在目标程序运行时,
IP的内容由微处理器硬件自动设置,程序不能直接访问 IP,但一些指令却可改变 IP的值,如转移指令、子程序调用指令( JMP,CALL,RET,IRET)等。
燕山大学电气工程学院自动化教研室第 2章 IA-32结构微处理器
8个通用寄存器,AX,BX,CX,DX,SP,BP,SI,DI
4个段寄存器,DS,CS,SS,ES
1个指令指针寄存器,IP
1个标志寄存器材,FR
FR的格式
CFPFAFZFSFTFIFDFOF
0123456789101112131415
较验进位辅助进位零标志符号标志跟踪标志中断标志方向标志溢出标志
2.4 8086的寄存器