微机原理与单片机技术
信息学院 电路与信号教研部
2 8086微处理器及其系统1
2.1 8086微处理器结构
23
2.2 8086引脚信号和系统配置2.3 8086主要操作
作业(107页) :2, 3, 4, 5, 7, 9, 13, 14
2.1 8086微处理器结构编程结构:总线接口部件,执行部件EU 内部寄存器:分类,功能,标志寄存器
存储结构:地址概念及其分段表示
2.1 8086微处理器结构8086微处理器的一般性能特点: 16位的内部结构,16位双向数据信号线; 20位地址信号线,可寻址1M字节存储单元; 较强的指令系统; 可寻址64K个I/O端口; 可处理内部软件中断和外部中断,中断源可达256个; 单一的+5V电源,时钟5MHz。参见手册:8086.pdf
2.1 8086微处理器结构2.1.1 内部结构(编程结构/功能结构) 2.1.2 内部寄存器 2.1.3 存储结构
2.1.1 内部结构(编程结构/功能结构)
总线接口部件 BIU
执行部件 EUhttp:///wiki/8086
2.1.1 内部结构1 执行部件EU(Execution Unit)作用:负责指令的执行, 指令译码并利用内部寄存器和ALU对数 据进行所需处理。 组成: 4个通用寄存器:AX,BX,CX,DX 4个专用寄存器:基数指针寄存器BP 堆栈指针寄存器SP 源变址 寄存器SI 目的变址寄存器DI 标志寄存器(FR) 算术逻辑部件(ALU)
2.1.1 内部结构2 总线接口部件BIU(Bus Interface Unit)作用:从内存中取指令,送入指令队列, 实现CPU与存储器和I/O接口之间数据传送。 组成: 4个段地址寄存器:代码段寄存器CS 数据段寄存器DS 附加段寄存器ES 堆栈段寄存器SS 16位指令指针寄存器IP。 20位地址加法器:利用16位寄存器和成20位物理地址。 6字节的指令队:预取指,提高CPU的工作效率。 总线接口及其控制逻辑。
2.1.1 内部结构block diagram over Intel 8086 1:main registers 2:segment registers and IP 3:address adder 4:internal address bus 5:instruction queue 6:control unit 7:bus interface; 8:internal databus; 9:ALU 10/11/12:external address/data/control bus FR
2.1.2 内部寄存器GENERAL PURPOSE REGISTERS
AH BH CH DH Index registers SI DI BP SPStatus register 15 14 13 12 11 OF 10 DF 9 IF 8 TF CS DS ES SS Instruction pointer IP 7 SF 6 ZF 5 -
AL BL CL DL
4 AF
3 -
2 PF
1 -
0 CF
Segment register
2.1.2 内部寄存器8086内部有14个16位的寄存器。 通用寄存器组: AX、BX、CX、DX
指针与变址寄存器组: SP 、BP 、DI、 SI 段寄存器: 指令指针寄存器: 标志寄存器: CS、DS、SS、ES IP FR
2.1.2 内部寄存器1 通用寄存器4个16位的通用寄存器:AX,BX,CX,DX。 可以存放16位的操作数 也可分别分解为2个8位寄存器(AL、AH 、..)AX (primary accumulator):累加器。乘、除运算,字的输入输出,中间结果 的缓存。 AL 字节的乘、除运算,字节的输入输出,十进制算术
运算。 AH 字节的乘、除运算,存放中断的功能号。 BX (base, accumulator):基址寄存器。存储器指针。 CX (counter, accumulator):计数寄存器。串操作、循环控制的计数器。 CL 移位操作的计数器 DX (accumulator, other functions):数据寄存器。字的乘、除运算,间接的输 入输出。
2.1.2 内部寄存器2 指针与变址寄存器2个16位指针寄存器:SP,BP。 SP(Stack Pointer):堆栈指针寄存器。与堆栈段寄存器SS一起来 确定堆栈在内存中的位置。 BP(Base Pointer):基数指针寄存器。通常用于存放基地址。 2个16位变址寄存器:SI,DI。 SI(Source Index):源变址寄存器。存储器指针、串指令中的源操 作数指针 DI(Destination Index):目的变址寄存器。存储器指针、串指令中 的目的操作数指针
2.1.2 内部寄存器3 段寄存器4个16位段寄存器:CS 、 DS、SS、ES。 功能段指针。 CS(Code Segment):代码段寄存器。
DS(Data Segment): 数据段寄存器。ES(Extra Segment):附加段寄存器。 SS(Stack Segment):堆栈段寄存器。
2.1.2 内部寄存器4 控制指令指针寄存器1个16位指令指针寄存器:IP (Instruction Pointer) IP与CS一起 指向即将执行的指令代码的存储地址。 例如:CS=0FE00H,IP=0400H,则表示要取指令代码的物理 地址为0FE400H。
2.1.2 内部寄存器5 标志寄存器1个16位标志寄存器:FR( Flags Register) Flags Register:15 14 13 12 11 10 9 IF 8 7 6 5 4 AF 3 2 PF 1 0 CFbit position
OF DF
TF SF ZF
Flags