微机原理--第二章(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

  1. 4个16位段寄存器
    CS(代码段)指明代码段的起始地址
    SS(堆栈段)指明堆栈段的起始地址
    DS(数据段)指明数据段的起始地址
    ES(附加段)指明附加段的起始地址
    每个段寄存器用来确定一个逻辑段的起始地址,每种逻辑段均有各自的用途
    20位的地址加法器
    段地址左移4位+偏移量→20位的物理地址
    段地址*16+偏移量 →20位的物理地址
  2. 通用寄存器
    用来存放计算的结果和操作数,BX可以存放地址
    16位通用寄存器:AX、BX、CX、DX
    8位通用寄存器: AH、BH、CH、DH AL、BL、CL、DL
    专用目的
    AX——累加器
    BX——基址寄存器
    CX——计数器
    DX——数据寄存器
  3. 专用寄存器
    功能:可用于存放某个存储单元的偏移地址。
    16位变址寄存器
    SI——源变址寄存器
    DI——目的变址寄存器
    串操作类指令中,SI和DI具有自动增量或减量的功能。
    16位指针寄存器
    指针寄存器用于寻址内存堆栈内的数据
    SP为堆栈指针寄存器
    指示栈顶的偏移地址
    BP为基址指针寄存器
    指示位于堆栈段中的一个数据区的偏移地址。
    SP和BP与SS联合使用
  4. 指令指针寄存器IP
    指令指针寄存器IP(16位),保存下一次将要从内存中取出指令的偏移地址
    IP与代码段寄存器CS联用,通过CS:IP控制指令序列的执行流程。
  5. 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状态。

0 0
原创粉丝点击