8086介绍

8086介绍8086 8086

大家好,欢迎来到IT知识分享网。

文章目录

  • 内部结构
    • 执行部件EU(Execution Unit)
    • 总线接口部件BIU(Bus Interface Unit)
    • 工作流程
  • 寄存器
    • 通用寄存器
    • 段寄存器
    • IP指令指针寄存器
    • FX状态标志寄存器
  • 存储器(内存)
    • 存储格式
    • 存储器分段
    • 地址
    • 堆栈操作
  • 工作模式
  • 时钟周期

内部结构

在这里插入图片描述

执行部件EU(Execution Unit)

总线接口部件BIU(Bus Interface Unit)

工作流程

从BIU的指令队列缓冲器中取得指令,译码,根据指令要求向EU内部各部件发出控制命令,完成执行指令的功能。若执行指令需要访问存储器或I/O端口,则EU将操作数的偏移地址送给BIU,由BIU取得操作数送给EU。

由段寄存器与IP形成20位物理地址送地址总线,由总线控制电路发出存储器“读”信号,按给定的地址从存储器中取出指令,送到指令队列中等待执行。

寄存器

共14个寄存器。

  • 8个通用寄存器(AX,BX,CX,DX,SP,BP,SI,DI)
  • 4个段寄存器(CS,DS,SS,ES)
  • 1个指令指针寄存器(IP)
  • 1个状态标志寄存器(FX)
    在这里插入图片描述

通用寄存器

  • AX

    字 乘/除指令中作为累加器,字I/O 指令中作为数据寄存器

  • AL

    字节乘/除指令,字节 I/O的数据寄存器,查表转移XLAT的偏移地址和结果,十进制运算的结果

  • AH

    字节乘/除指令(高八位/余数)

  • BX

    作为地址/基址寄存器

  • CX

    串操作时,循环计数器,自动自增

  • CL

    变量位移或循环操作时用作计数器

  • DX

    字乘/除指令(高十六位/余数),短格式I/O的间接寻址

  • 基址指针寄存器
    • SP:堆栈指针寄存器,其内容为栈顶的偏移地址;
    • BP:基址指针寄存器,常用于在访问内存时存放内存单元的偏移地址。
  • 变址寄存器
    • SI:源变址寄存器,存放源操作数的偏移地址
    • DI:目标变址寄存器,存放目标操作数的偏移地址

段寄存器

IP指令指针寄存器

FX状态标志寄存器

  • 进位CF(Carry Flag):

最高位是否有进位(CF=1 有进位/借位;CF=0 无进位/借位)

  • 辅助进位AF(Auxiliary Carry Flag):

表示低4位有无进位或借位(AF=1 有进位/借位;AF=0 无进位/借位)

  • 溢出标志OF(Overflow Flag):

带符号数是否溢出 [ 最高位和次高位的进位异或不同为1 ](OF=1 有溢出;OF=0 无溢出)

  • 零标志位ZF(Zero Flag):

ZF=1 运算结果为0;ZF=0 运算结果不为0

  • 符号标志位SF(Sign Flag)

结果的最高位为1,SF=1 负数;结果的最高位为0,SF=0 正数

  • 奇偶标志PF(Parity Flag)

PF=1 运算结果1的个数为偶数;PF=0 运算结果1的个数为奇数

  • 方向标志DF(Direction Flag):

控制数据串操作指令的步进方向(DF=1 减址方式(STD指令);DF=0 增址方式(CLD指令))

  • 中断允许标志IF(Interrupt Enable Flag):对可屏蔽中断
  • 陷阱标志TF(Trap Flag):方便程序调试

TF=1 单步执行,以便检查程序;TF=0 连续正常执行

存储器(内存)

存储格式

  • 规则字:从偶地址开始存放的字
  • 非规则字:从奇地址开始存放的字

规则字的存取在一个总线周期内即可完成;非规则字的存取则需2个总线周期

  • 低位库:8086CPU的低位库与数据总线的D7~D0相连,库中的每个单元的地址均为偶数。
  • 高位库:8086CPU的高位库与数据总线的D15~D8相连,库中的每个单元的地址均为奇数
  • 一个字的存储
数据 地址
BB 03H
AA 02H

BBAA储存在02H地址上

存储器分段

8086有20位的地址信号,需要5位16进制数表示。所以才有分逻辑段的概念。

地址

  • 段基地址:来源于四个段寄存器(SS,DS,CS,ES)。
  • 偏移地址:相对于段基址的偏移,16位数,最大可到64kB(0000H~FFFFH)来源于SP,BP,SI,DI,有效地址。
  • 有效地址(16位)EA:在指令中用SP,BP,SI,DI和立即数计算出的偏移地址,它不是实际地址。
  • 逻辑地址:产生实际地址用到的两个地址(段首址:偏移地址);
  • 实际地址(物理地址20位)PA:CPU和存储器进行数据交换时使用的地址;
    实际地址 = 段基址 << 4 + 偏移地址

堆栈操作

  • 堆栈段的最大围为16bit~64KB
  • 栈顶在高地址,SS存放栈基址,SP存放偏移量
  • 只能操作一个字的数据,即16位
  • 栈首址:SS<<4;栈顶:SS<<4+SP;栈底:SS<<4+FFFFH

请添加图片描述

工作模式

时钟周期

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/118772.html

(0)
上一篇 2025-11-10 16:20
下一篇 2025-11-10 16:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信