第2章微处理器功能结构
2.1 8086微处理器内部结构
8086CPU内部结构(1)
总线接口部件BIU
形成访问存储器和I/O设备的地址,完成指令预取,存放运算结果。包括:
地址加法器专用寄存器组指令队列总线控制电路
执行部件EU
负责执行指令。包括:
算术逻辑单元ALU
8086CPU内部结构(2)
标志寄存器FR通用寄存器组EU控制器
EU和BIU可并行工作,以提高系统的处理速度
8086CPU内部结构框图
通用寄存器组
Address Bus20 bit
内部寄存器
Data Bus16 bit
暂存器
专用寄存器组
EU控制器
指令队列
总线控制逻辑
外部总线
标志寄存器
EU
BIU
指令的执行过程
从CS:IP指向的地址取指令,然后CS:IP指向下一条指令执行该指令
例:ADD AX,BX;AX←AX+BX
(1)取指:BIU将指令从内存取到指令队列(2)译码:EU控制器发出控制信号,将AX,BX寄存器的内容送到ALU的两个输入端
(3)执行:ALU执行加法运算,置标志寄存器的相关位
(4)写回:在控制信号的作用下,将加法结果送入AX
2.2 8086的寄存器结构
80x86 寄存器组
通用寄存器段寄存器
专用(控制)寄存器
对汇编语言程序员来说,必须熟悉处理器的内部结构-寄存器组
通用寄存器(1)
EAXEBXECXEDXESPEBPEDIESI
31
15AH
BH
CH
DH
SPBPDISI
DLCLBL87
AL
累加器基址变址计数器数据堆栈指针基址指针目的变址源变址
区域:对8086、8088和80286处理器不可用
通用寄存器(2)
AX:累加器,是算术运算的主要寄存器,I/O指令使用该寄存器与外设传送信息BX:通用寄存器,常用作基址寄存器
CX:通用寄存器,在循环时作为隐含的计数器
DX:通用寄存器,可以和AX一起存储双字,DX存放高位
SP:用来指示栈顶的偏移地址
BP:常用作堆栈区中的基地址指针SI:源变址寄存器,具有自动增/减功能DI:目的变址寄存器,具有自动增/减功能
段寄存器(1)代码数据附加堆栈8086、8088和80286处理器不可用
区域:对
段寄存器(2)
CS:存放代码段的段基址或段选择字。DS:存放数据段的段基址或段选择字。ES:存放附加数据段的段基址或段选择字。SS:存放堆栈段的段基址或段选择字
FS:存放附加数据段的段基址或段选择字。GS:存放附加数据段的段基址或段选择字。除非特别指定,一般情况下,各段的分配由操作系统负责,独立占有64K,可以重叠。
专用寄存器
IP:指令指针寄存器。存放代码段中的偏移地址,它始终指向下一条指令的首地址,与CS一起确定下一条指令的物理地址。
PSW:程序状态字寄存器。由条件码标志和控制标志构成。
EFLAGS
EIP标志寄存器程序指针寄存器
标志寄存器(0~15)
[***********]32NTIOPLOFDFIFTFSFZFAFPF10CFCF:进位标志。最高有效位的进位
PF:奇偶标志。操作结果的最低字节中1的个数为偶数时置1,否则置0。
AF:辅助进位或借位标志。即半字节进位或借位。ZF:零标志。结果为0时ZF置1。
SF:符号标志。最高有效位为1,SF=1;否则,SF=0
TF:陷阱标志。当TF置1,每条指令执行完后产生单步中断。IF:中断标志。IF=1,响应可屏蔽中断;否则,禁止中断。DF:方向标志。DF=0,串操作自动递增;否则,自动递减。OF:溢出标志。运算结果超出了机器能表示的范围,则OF=1
标志寄存器(0~15)
[***********]32NTIOPLOFDFIFTFSFZFAFPF10CF80286处理器
IOPL:I/O特权层。在保护模式下,用于控制对I/O地址空间的访问。特权级(高)0,1,2,3(低)。当任务的当前特权级CPL高于或等于IOPL时,执行输入输出指令、STI、CLI和LOCK前缀时,才不产生异常中断13。
NT:嵌套任务。在保护模式下,当某系统任务通过CALL指令调用另一个任务时,置NT为1。
标志寄存器(16~31)
[**************]6IDVIPVIFACVMRF
80386处理器
RF:重新开始(Resume)。在调试时用于选择性的屏蔽一些异常(exceotions)
VM:在保护模式下,当VM置1时,32位处理器进入虚拟8086模式。
80486处理器
AC:进行字、双字或四字的边界对齐检查
Pentium处理器
VIF:虚拟中断标志。中断标志位的虚拟映像VIP:虚拟中断挂起标志。表示虚拟中断是否挂起。ID:为1时,允许使用CPU标识指令CPU ID。
控制及调试寄存器
CR(0~3)4个32位控制
寄存器,用于分页、
Caching、保护。31310
0DR(0~7)8个32位调试寄存器,用于设置断点。
系统地址寄存器
47
16150GDTRIDTR
GDTR:全局描述符基地址及限值(描述符表长度)
IDTR:中断描述符基地址及限值
LDTR:局部描述符的段选择字
TR:任务状态表的段选择字
测试寄存器
TR(3~7)5个32位测试31
0寄存器,用于测试
Cache。TLB和
2.3的存储器组织
8086
基本概念
地址控制
数据
对比:
寄存器是微处理器芯片内部存放数据的存储单元,用名称区别
存储器是微处理器外部存放程序和数据的空间,用地址寻址
存储单元的地址和内容
内存是由许多存储单元组成,为了区分不同的内存单元,必须对计算机中的每个内存单元进行编号,内存单元的编号称之为内存单元的地址。
英特尔x86处理器规定的存放方式
存储器中数据的存储方式
在物理存储器中:低字节存放在前面,高字节存放在后面,称为Little Endian。与之相反的是Big Endian。
80x86存储器管理
实模式:使用20位物理地址、单任务工作方式、独占系统所有资源。存储器空间为00000H~FFFFFH。DOS系统要求实模式保护模式:工作在系统所提供地址、多任务方式下,根据本任务的特权级请求使用系统资源
实模式存储器地址
物理地址:每个存储单元具有一个唯一的20位地址
逻辑地址:由段基址和偏移地址构成
段基址:每一段的起始地址,其低4位为0。每一段最大为64KB。偏移地址:在段内相对于段基址的偏移值
实模式存储器寻址(1)
分段与偏移
15
15
段寄存器0
00000
段基址
段内偏移
64KB
所选存储单元
FFFFF
逻辑地址
20位物理地址变= 段地址(16位)×16d + 偏移地址(16位)段的起始地址必须从一小段(paragraph)的首地址开始,即最低4bit为0
实模式存储器寻址(2)
存储器分段15
20F[1**********]0
0000010000
CSDSSSES
段寄存器
FFFFF
分段寻址允许数据和地址的重定位
OS能够在运行时刻分配段地址
保护模式存储器寻址
保护模式支持多任务处理、支持虚拟存储器特性
逻辑地址:由选择器和偏移地址构成
选择器:存放在段寄存器中,用于选择段描述符
偏移地址:为32位,在段内相对于段基址的偏移值
描述符:包含基地址、界限、访问权和附加字段。存放在内存中。内容由系统预先设定。
保护模式存储器寻址
逻辑地址
150段寄存器
000000000段内偏移
4GB
32位段基址
存储器
段基址
所选存储单元
第2章微处理器功能结构
2.1 8086微处理器内部结构
8086CPU内部结构(1)
总线接口部件BIU
形成访问存储器和I/O设备的地址,完成指令预取,存放运算结果。包括:
地址加法器专用寄存器组指令队列总线控制电路
执行部件EU
负责执行指令。包括:
算术逻辑单元ALU
8086CPU内部结构(2)
标志寄存器FR通用寄存器组EU控制器
EU和BIU可并行工作,以提高系统的处理速度
8086CPU内部结构框图
通用寄存器组
Address Bus20 bit
内部寄存器
Data Bus16 bit
暂存器
专用寄存器组
EU控制器
指令队列
总线控制逻辑
外部总线
标志寄存器
EU
BIU
指令的执行过程
从CS:IP指向的地址取指令,然后CS:IP指向下一条指令执行该指令
例:ADD AX,BX;AX←AX+BX
(1)取指:BIU将指令从内存取到指令队列(2)译码:EU控制器发出控制信号,将AX,BX寄存器的内容送到ALU的两个输入端
(3)执行:ALU执行加法运算,置标志寄存器的相关位
(4)写回:在控制信号的作用下,将加法结果送入AX
2.2 8086的寄存器结构
80x86 寄存器组
通用寄存器段寄存器
专用(控制)寄存器
对汇编语言程序员来说,必须熟悉处理器的内部结构-寄存器组
通用寄存器(1)
EAXEBXECXEDXESPEBPEDIESI
31
15AH
BH
CH
DH
SPBPDISI
DLCLBL87
AL
累加器基址变址计数器数据堆栈指针基址指针目的变址源变址
区域:对8086、8088和80286处理器不可用
通用寄存器(2)
AX:累加器,是算术运算的主要寄存器,I/O指令使用该寄存器与外设传送信息BX:通用寄存器,常用作基址寄存器
CX:通用寄存器,在循环时作为隐含的计数器
DX:通用寄存器,可以和AX一起存储双字,DX存放高位
SP:用来指示栈顶的偏移地址
BP:常用作堆栈区中的基地址指针SI:源变址寄存器,具有自动增/减功能DI:目的变址寄存器,具有自动增/减功能
段寄存器(1)代码数据附加堆栈8086、8088和80286处理器不可用
区域:对
段寄存器(2)
CS:存放代码段的段基址或段选择字。DS:存放数据段的段基址或段选择字。ES:存放附加数据段的段基址或段选择字。SS:存放堆栈段的段基址或段选择字
FS:存放附加数据段的段基址或段选择字。GS:存放附加数据段的段基址或段选择字。除非特别指定,一般情况下,各段的分配由操作系统负责,独立占有64K,可以重叠。
专用寄存器
IP:指令指针寄存器。存放代码段中的偏移地址,它始终指向下一条指令的首地址,与CS一起确定下一条指令的物理地址。
PSW:程序状态字寄存器。由条件码标志和控制标志构成。
EFLAGS
EIP标志寄存器程序指针寄存器
标志寄存器(0~15)
[***********]32NTIOPLOFDFIFTFSFZFAFPF10CFCF:进位标志。最高有效位的进位
PF:奇偶标志。操作结果的最低字节中1的个数为偶数时置1,否则置0。
AF:辅助进位或借位标志。即半字节进位或借位。ZF:零标志。结果为0时ZF置1。
SF:符号标志。最高有效位为1,SF=1;否则,SF=0
TF:陷阱标志。当TF置1,每条指令执行完后产生单步中断。IF:中断标志。IF=1,响应可屏蔽中断;否则,禁止中断。DF:方向标志。DF=0,串操作自动递增;否则,自动递减。OF:溢出标志。运算结果超出了机器能表示的范围,则OF=1
标志寄存器(0~15)
[***********]32NTIOPLOFDFIFTFSFZFAFPF10CF80286处理器
IOPL:I/O特权层。在保护模式下,用于控制对I/O地址空间的访问。特权级(高)0,1,2,3(低)。当任务的当前特权级CPL高于或等于IOPL时,执行输入输出指令、STI、CLI和LOCK前缀时,才不产生异常中断13。
NT:嵌套任务。在保护模式下,当某系统任务通过CALL指令调用另一个任务时,置NT为1。
标志寄存器(16~31)
[**************]6IDVIPVIFACVMRF
80386处理器
RF:重新开始(Resume)。在调试时用于选择性的屏蔽一些异常(exceotions)
VM:在保护模式下,当VM置1时,32位处理器进入虚拟8086模式。
80486处理器
AC:进行字、双字或四字的边界对齐检查
Pentium处理器
VIF:虚拟中断标志。中断标志位的虚拟映像VIP:虚拟中断挂起标志。表示虚拟中断是否挂起。ID:为1时,允许使用CPU标识指令CPU ID。
控制及调试寄存器
CR(0~3)4个32位控制
寄存器,用于分页、
Caching、保护。31310
0DR(0~7)8个32位调试寄存器,用于设置断点。
系统地址寄存器
47
16150GDTRIDTR
GDTR:全局描述符基地址及限值(描述符表长度)
IDTR:中断描述符基地址及限值
LDTR:局部描述符的段选择字
TR:任务状态表的段选择字
测试寄存器
TR(3~7)5个32位测试31
0寄存器,用于测试
Cache。TLB和
2.3的存储器组织
8086
基本概念
地址控制
数据
对比:
寄存器是微处理器芯片内部存放数据的存储单元,用名称区别
存储器是微处理器外部存放程序和数据的空间,用地址寻址
存储单元的地址和内容
内存是由许多存储单元组成,为了区分不同的内存单元,必须对计算机中的每个内存单元进行编号,内存单元的编号称之为内存单元的地址。
英特尔x86处理器规定的存放方式
存储器中数据的存储方式
在物理存储器中:低字节存放在前面,高字节存放在后面,称为Little Endian。与之相反的是Big Endian。
80x86存储器管理
实模式:使用20位物理地址、单任务工作方式、独占系统所有资源。存储器空间为00000H~FFFFFH。DOS系统要求实模式保护模式:工作在系统所提供地址、多任务方式下,根据本任务的特权级请求使用系统资源
实模式存储器地址
物理地址:每个存储单元具有一个唯一的20位地址
逻辑地址:由段基址和偏移地址构成
段基址:每一段的起始地址,其低4位为0。每一段最大为64KB。偏移地址:在段内相对于段基址的偏移值
实模式存储器寻址(1)
分段与偏移
15
15
段寄存器0
00000
段基址
段内偏移
64KB
所选存储单元
FFFFF
逻辑地址
20位物理地址变= 段地址(16位)×16d + 偏移地址(16位)段的起始地址必须从一小段(paragraph)的首地址开始,即最低4bit为0
实模式存储器寻址(2)
存储器分段15
20F[1**********]0
0000010000
CSDSSSES
段寄存器
FFFFF
分段寻址允许数据和地址的重定位
OS能够在运行时刻分配段地址
保护模式存储器寻址
保护模式支持多任务处理、支持虚拟存储器特性
逻辑地址:由选择器和偏移地址构成
选择器:存放在段寄存器中,用于选择段描述符
偏移地址:为32位,在段内相对于段基址的偏移值
描述符:包含基地址、界限、访问权和附加字段。存放在内存中。内容由系统预先设定。
保护模式存储器寻址
逻辑地址
150段寄存器
000000000段内偏移
4GB
32位段基址
存储器
段基址
所选存储单元