微机原理==第二章16位和32位微处理器(1)

本文介绍了16位微处理器8086的编程结构,包括其16根数据线、20根地址线和16位内部体系结构。8086拥有1MB的寻址空间,支持中断处理和DMA操作,并与8088进行对比。详细阐述了总线接口部件BIU和执行部件EU的功能,以及物理地址的计算方法和标志寄存器的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 16位微处理器8086

1.1 8086的编程结构

8086的定义:
①Inter系列的16位微处理器
②有16根数据线和20根地址线
③16位内部体系结构——ALU、寄存器和内部数据总线皆16位

8086的特点:
16位外部数据总线
20根地址线的作用:可寻址的地址空间达2^20字节,即1MB
16位I/O端口地址线,寻址64K端口地址;
较强中断处理能力、管理DMA操作和多处理的能力。

8088的定义:
准16位微处理器,其内部寄存器、内部运算部件和内部操作都是16位的,但对外的数据总线只有8位。

8086由两个独立的(部分重叠,同时工作)逻辑部件组成
①总线接口部件BIU
②执行部件EU

- 1.1.1 总线接口部件BIU

BIU的功能:负责与存储器,I/O端口传送数据

BIU的组成:
①4个段地址寄存器(CS,DS,ES,SS)
CS(16位的代码段寄存器):指明代码段的起始地址
SS(16位的堆栈段寄存器):指明堆栈段的起始地址
DS(16位的数据段寄存器):指明数据段的起始地址
ES(16位的附加段寄存器):指明附加段的起始地址

//每个段寄存器用来确定一个逻辑段的起始地址

②1个16位指令指针寄存器IP

//保存下一次将要从内存中取出指令的偏移地址
//IP与代码段寄存器CS联用,通过CS:IP控制指令序列的执行流程。

③一个20位的地址加法器
④一个6字节的指令队列缓冲器

//指令队列采用的是先进先出原则,
//按序存放,按序取到EU中去执行。

一条指令的物理地址的求法(20位的地址加法器):
段地址左移4位+偏移量→20位的物理地址
段地址*16+偏移量 →20位的物理地址

//例子:
CS向左移4位(即在最后加一个0),再加上IP,即得到物理地址

- 1.1.2 执行部件EU

EU的功能:负责指令的执行

EU的组成:
①4个通用寄存器(AX,BX,CX,DX)
//用来存放计算的结果和操作数,BX可以存放地址
16位通用寄存器:AX、BX、CX、DX
8位通用寄存器: AH、BH、CH、DH 
              AL、BL、CL、DL


AX:累加器
BX:基址寄存器
CX:计数器
DX:数据寄存器


//既可作为16位寄存器,也可作为8位寄存器
//若BX作为8位寄存器是,分别称为BH(高8位)和BL(低8位)


//AX寄存器也称为累加器
//指令系统有许多指令都是利用累加器来执行的

②4个专用寄存器(BP,SP,SI,DI)

//可用于存放某个存储单元的偏移地址。


//16位变址寄存器
SI——源变址寄存器
DI——目的变址寄存器
//串操作类指令中,SI和DI具有自动增量或减量的功能。


//16位指针寄存器
指针寄存器用于寻址内存堆栈内的数据
SP为堆栈指针寄存器:指示栈顶的偏移地址
BP为基址指针寄存器:指示位于堆栈段中的一个数据区的偏移地址。
//SP和BP与SS联合使用

③1个16位算术逻辑部件ALU

//ALU用于进行算术、逻辑运算;
//计算寻址单元的16位偏移量。

④1个16位标志寄存器FR(FLAGS)

//FR共有16位,其中7位未用

8086的标志可以根据功能分为两类:
①状态标志:前面的操作执行之后,算术逻辑部件所处的状态,表示处理器当前运行的状态
//共有6个,SF,ZF,PF,CF,AF,OF

②控制标志:人为设置的,控制处理器的某一特定功能
//共有3个,DF,IF,TF

状态标志:

符号标志位SF:和运算结果的最高位相同。
//作用:指出了运算结果的正负

零标志ZF:若运算结果为0,则ZF=1,若结果非0,ZF=0

奇/偶标志PF:若运算结果的低8位中所含1的个数是偶数。PF=1.否则为0

进位标志CF:加法运算产生进位,减法运算产生借位时,CF都为1
//移位指令也会影响CF

辅助进位标志AF:加法运算时,若第三位往第四位有进位,或减法时,第三位向第四位借位,AF=1
//AF用于十进制算术运算调整指令中

溢出标志OF:运算产生溢出时,OF=1

控制标志:

方向标志DF(Direction Flag)
//用于串操作指令中,控制地址的变化方向:
设置DF=0,存储器地址自动增加;
设置DF=1,存储器地址自动减少。


中断允许标志IF(Interrupt-enable Flag)
// 控制外部可屏蔽中断是否可以被处理器响应
设置IF1,则允许中断;
设置IF0,则禁止中断。


跟踪标志TF(Trap Flag)
//用于控制处理器进入跟踪执行方式:
设置TF=0,处理器正常工作;
设置TF=1,处理器按跟踪方式执行指令。

- 1.1.3 8086总线周期的概念

目的:取得指令或者传送数据
执行者:CPU的总线接口部件BIU

将1个基本的总线周期划分为:4个时钟周期,又称4个状态,T1,T2,T3,T4
T1:发出地址信息,多路复用线输出地址信息,以指示所要访问的内存单元或外设端口的地址。
T2:撤消地址信号,地址/状态复用线驱动状态信息,地址/数据复用线转为数据线。 
T3:完成存储器或外设端口的访问。
T4:总线周期结束
Ti:空闲状态。执行空闲周期,CPU进行内部操作。
Tw:等待状态。在总线周期的T3和T4之间插入等待时钟周期状态。

判断是否插入Tw :
在T3的前沿检测READY引脚是否有效;
如果READY无效,在T3和它T4之间插入一个等效于T3的Tw ;
如果READY有效,执行完该T状态,进入T4状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值