微机原理、汇编与接口技术笔记——80x86
80x86微处理器
(1)执行单元EU
EU负责执行指令,完成两种操作:算术逻辑运算、计算存储器操作数的偏移地址
(2)总线接口单元BIU
BIU完成所有的总线操作
EU和BIU并行工作,可以同时进行读/写操作和执行指令的操作
80286
微处理器的组成:
地址单元AU(Address Unit)
总线单元BU(Bus Unit)
指令单元IU(Instruction Unit)
执行单元EU
AU中的存储器管理机构使用段式管理方式,首次实现了虚拟存储器管理
80386
微处理器的组成:
总线接口单元BIU
指令译码单元IDU(Instruction Decode Unit)
指令预取单元IPU(Instruction Prefetch Unit)
执行单元EU
分段单元SU(Segmentation Unit)
分页单元PU(Paging Unit)
80486
微处理器的组成:
总线接口单元、指令译码单元
指令预取单元、执行单元
分段单元
分页单元以及浮点处理单元(FPU)
高速缓存(Cache memory)
Pentium微处理器
(1)总线接口单元
总线接口单元实现微处理器与微型计算机系统总线的连接,其中包括64位数据线、32位地址线和众多的信号线,以此实现微处理器与外部的信息交换。Pentium微处理器与外部交换数据可以是64位还可以是32位、16位或者8位。
(2)分段单元和分页单元
分段单元将程序提供的逻辑地址转换为线性地址,分页单元将线性地址转换为物理地址。
分页是将段分为多个固定大小的页面(通常为4KB),分页支持虚拟存储器环境。内存中只保留程序访问的页面,而众多的页面被存储在磁盘中。当程序要访问线性地址空间中的某个地址时,分页单元先将线性地址转换为存储器的物理地址,然后执行对该地址的读操作或写操作。如果所访问的页面不在物理内存中,微处理器就会暂时中断该程序的执行,由操作系统将所需的页面从磁盘读入物理内存中,然后接着执行被中断的程序。
(3)U流水线和V流水线
Pentium采用两条流水线,这两条流水线都拥有自己的算术逻辑单元ALU、地址生成电路和数据Cache的接口。这种双流水线结构允许Pentium可以一次执行两条指令,每条流水线中执行一条。
(4)指令Cache和数据Cache
在Pentium中,指令Cache和数据Cache两者分开,从而减少了指令预取和数据存取操作之间可能发生的冲突,并可提高命中率。Pentium的数据Cache有两个接口,分别与U和V两条流水线相连,以便同时和两条流水线交换数据。
(5)指令预取单元、指令译码单元和控制ROM
指令预取单元从指令Cache中预先取指令,每次取两条指令。如果是简单指令,通过指令译码单元译码后,将两条指令分别送到U流水线和V流水线执行。如果是复杂指令,通过控制ROM将其转换成对应的一系列微指令,再送到U流水线和V流水线执行。复杂指令对应的微指令存放在控制ROM中。微指令是微处理器能够直接执行的指令,它的长度是固定的,因此很容易在流水线中进行处理。
(6)控制单元
控制单元的功能是通过对来自指令译码单元和和控制ROM中微程序的解析,控制U流水线、V流水线和浮点处理单元的正常运行。
(7)分支转移目标缓冲器
分支转移目标缓冲器在遇到分支转移指令时用来预测转移是否发生,并据此为分支指令处的指令提供预取地址。
(8)浮点处理单元
浮点处理单元主要用于浮点运算,使得浮点运算的速度得到提高。
80x86的寄存器

通用寄存器共8个:AX,BX,CX,DX,SP,BP,SI,DI,均为16位,在EU部件中
AX,BX,CX,DX均可分成高8位和低8位,作为独立的8位寄存器使用:AH,AL,BH,BL,CH,CL,DH,DL
AX——累加器,BX——基址寄存器
CX——计数寄存器,DX——数据寄存器
SP——堆栈指示器,BP——基址指示器
SI——源变址寄存器,DI——目的变址寄存器
标志寄存器FLAG包含哪几个标志位?简述各位的状态含义及用途。
答:
状态标志:存放运算结果的特征。6个状态标志位(CF,PF,AF,ZF,SF,OF)
控制标志:控制某些特殊操作。3个控制标志位(TF,IF,DF)
状态标志位:
C 进位标志
ALU进行算术运算时,反映运算结果最高位有无进位/借位。
C =“0” 无进位/借位 NC (汇编语言符号)
C =“1” 有进位/借位 C
P 奇偶标志
逻辑运算时,P反映ALU运算结果“1”的个数的奇偶性。
P = “0” 奇数个1 PO
P = “1” 偶数个1 PE
A 辅助进位标志,Ac
A位反映ALU进行算术运算时,D3向D4是否有无进位/借位。
A =“0” 无进位/借位
A =“1” 有进位/借位
A位通常供CPU内部调整用
Z 全零标志
ALU运算结果是否为零,适用于算术、逻辑运算。
Z =“0” 结果不为零 NZ
Z =“1” 有进位/借位 Z
S 符号标志
ALU运算结果最高位。
S = “0” 结果为正 NS
S = “1” 结果为负 S
O 溢出标志
判断带符号数加减运算结果是否溢出。
O =“0” 溢出 NO
O =“1” 不溢出 O
无符号数溢出判断用C标志。
控制标志位的名称和定义
T 单步标志、陷阱标志
T=1可使微处理器进入跟踪方式,即单步调试状态。
I 中断允许标志
用来控制CPU是否允许响应可屏蔽中断。
I = “0” 表示不允许CPU响应可屏蔽中断
I = “1” 表示允许CPU响应可屏蔽中断。
可用指令置位和复位
D 方向标志
用于指定字符串处理指令的步进方向。
D =“0” 递增方向 低地址向高地址方向进行
D =“1” 递减方向 高地址向低地址方向进行
可用指令置位和复位
80x86的工作方式与存储器物理地址的生成
80x86的工作方式有4种:
实地址方式(real address mode)
虚地址保护方式 (protected virtual address mode)
虚拟8086方式(virtual 8086 mode)
系统管理方式(system management mode)
8086/8088只有实地址方式1种工作方式
80286有实地址方式和虚地址保护方式2种工作方式
80386和80486有实地址、虚地址保护方式和虚拟8086方式3种工作方式。
Pentium有实地址方式、虚地址保护方式、虚拟8086方式和系统管理方式4种。