微机原理--第二章(1)
来源:互联网 发布:网络暴力项目 编辑:程序博客网 时间:2024/05/16 16:04
8086的主要特点
16位外部数据总线;
16位内部体系结构——ALU、寄存器和内部数据总线皆16位;
多种寻址方式及较强的指令系统功能;
20位地址线,寻址1M字节存储空间;
16位I/O端口地址线,寻址64K端口地址;
较强中断处理能力、管理DMA操作和多处理的能力。
8086的编程结构
1)总线接口部件(BIU)
2)执行部件(EU)
3)8086的寄存器组
4)8086总线周期的概念
8086CPU由两个独立的逻辑部件组成:
总线接口部件(BIU)
执行部件(EU)
1)总线接口部件(BIU)
1.BIU的功能负责完成CPU与存储器或I/O设备之间的数据传送。
2.BIU的组成
4个16位段寄存器:CS、DS、SS、ES
1个16位指令指针寄存器IP
20位地址加法器
6字节指令队列缓冲器
3.指令队列采用的是先进先出原则,
按序存放,按序取到EU中去执行。
2) 执行部件(EU)
1.EU的功能——负责执行指令。
2.EU的组成
4个16位的通用寄存器:AX、BX、CX、DX
4个16位的专用寄存器:BP、SP、SI、DI
1个16位的标志寄存器:FLAGS
16位的算术逻辑单元ALU
3.ALU用于进行算术、逻辑运算;
计算寻址单元的16位偏移量。
3)8086的寄存器组
段寄存器: CS、DS、SS、ES
通用寄存器:AX、BX、CX、DX
专用寄存器:BP、SP、SI、DI
指令指针寄存器IP
标志寄存器FLAGS
- 4个16位段寄存器
CS(代码段)指明代码段的起始地址
SS(堆栈段)指明堆栈段的起始地址
DS(数据段)指明数据段的起始地址
ES(附加段)指明附加段的起始地址
每个段寄存器用来确定一个逻辑段的起始地址,每种逻辑段均有各自的用途
20位的地址加法器
段地址左移4位+偏移量→20位的物理地址
段地址*16+偏移量 →20位的物理地址 - 通用寄存器
用来存放计算的结果和操作数,BX可以存放地址
16位通用寄存器:AX、BX、CX、DX
8位通用寄存器: AH、BH、CH、DH AL、BL、CL、DL
专用目的
AX——累加器
BX——基址寄存器
CX——计数器
DX——数据寄存器 - 专用寄存器
功能:可用于存放某个存储单元的偏移地址。
16位变址寄存器
SI——源变址寄存器
DI——目的变址寄存器
串操作类指令中,SI和DI具有自动增量或减量的功能。
16位指针寄存器
指针寄存器用于寻址内存堆栈内的数据
SP为堆栈指针寄存器
指示栈顶的偏移地址
BP为基址指针寄存器
指示位于堆栈段中的一个数据区的偏移地址。
SP和BP与SS联合使用 - 指令指针寄存器IP
指令指针寄存器IP(16位),保存下一次将要从内存中取出指令的偏移地址
IP与代码段寄存器CS联用,通过CS:IP控制指令序列的执行流程。 - 16位标志寄存器(FLAGS)
6位状态标志
3位控制标志
状态标志:表示处理器当前运行的状态
控制标志:控制处理器的某一特定功能
① 状态标志
- 进位标志CF(Carry Flag )
运算结果的最高有效位
有进位(加法)或借位(减法),CF=1;
无进位(加法)或借位(减法),CF=0。 - 零标志ZF(Zero Flag)
运算结果
为0,ZF=1;
不为0,ZF=0。 - 溢出标志OF(Overflow Flag)
算术运算的结果
有溢出,OF=1;
无溢出, OF=0 。 - 符号标志SF(Sign Flag)
运算结果最高位
为1,则SF=1;
为0, SF=0。 - 奇偶标志PF(Parity Flag)
当运算结果最低字节中“1”的个数
为零或偶数,PF=1
为奇数,PF=0 - 辅助进位标志AF(Auxiliary Carry Flag)
运算时D3位(低半字节)
有进位或借位,AF=1;
无进位或借位,AF=0。
AF用于十进制算术运算调整指令中 - 辅助进位标志AF(Auxiliary Carry Flag)
运算时D3位(低半字节)
有进位或借位,AF=1;
无进位或借位,AF=0。
AF用于十进制算术运算调整指令中
② 控制标志
- 方向标志DF(Direction Flag)
用于串操作指令中,控制地址的变化方向:
设置DF=0,存储器地址自动增加;
设置DF=1,存储器地址自动减少。 - 中断允许标志IF(Interrupt-enable Flag)
控制外部可屏蔽中断是否可以被处理器响应
设置IF=1,则允许中断;
设置IF=0,则禁止中断。 - 辅助进位标志AF(Auxiliary Carry Flag)
用于控制处理器进入跟踪执行方式:
设置TF=0,处理器正常工作;
设置TF=1,处理器按跟踪方式执行指令。
4)8086总线周期的概念
8086进行一次内存或外设端口访问,需要BIU执行一个总线周期。
8086基本的总线周期由4个时钟周期组成,以T1、T2、T3和T4来表示,称为4个T状态。
T1 :多路复用线输出地址信息,以指示所要访问的内存单元或外设端口的地址。
T2 :撤消地址信号,地址/状态复用线驱动状态信息,地址/数据复用线转为数据线。
T3 :完成存储器或外设端口的访问。
T4 :总线周期结束。
Ti:空闲状态。执行空闲周期,CPU进行内部操作。
Tw:等待状态。在总线周期的T3和T4之间插入等待时钟周期状态。
判断是否插入Tw :
在T3的前沿检测READY引脚是否有效;
如果READY无效,在T3和它T4之间插入一个等效于T3的Tw ;
如果READY有效,执行完该T状态,进入T4状态。
- 微机原理--第二章(1)
- 微机原理--第二章(6)Pentium 的原理结构
- 微机原理--第二章(5)Pentium 的工作方式
- 微机原理--第二章(7)Pentium的寄存器
- 微机原理--第二章(8)Pentium 的中断
- 微机原理--第二章(8)Pentium的存储管理
- 微机原理--第二章(9)描述符和页表项
- 微机原理--第二章(10)Pentium的保护技术
- 微机原理==第二章16位和32位微处理器(1)
- 微机原理学习(1)
- 微机原理==第二章16位和32位微处理器(2)
- 微机原理--第二章(2) 8086的引脚信号和工作模式
- 微机原理--第二章(3)8086的操作和时序
- 微机原理--第二章(4)8086的存储器编址和I/O编址
- 微机原理==第二章16位和32位微处理器(3)
- 微机原理==第二章16位和32位微处理器(4)
- 微机原理==第二章16位和32位微处理器(5)
- 微机原理==第二章16位和32位微处理器(6)
- 1-2 输出N个数的平方和立方值
- AdaBoost 人脸检测介绍(6) : 使用OpenCV自带的 AdaBoost程序训练并检测目标
- c++输出流的一些控制
- 网易有道产品笔试及个人解答(小部分题目)
- The Essentials of Filters
- 微机原理--第二章(1)
- webGL平台Unity打开Color窗口
- 【bzoj 4521】 [Cqoi2016]手机号码(数位dp)
- 学习编程与调试
- 每日一句英语0922
- 流媒体学习好地方
- DB2大数据重一张表复制到另外一张表存储过程和直接在客户端中执行
- Revit开发之内建模型
- JavaScript 全局对象