8086的编程结构

news/2025/3/16 5:51:05/

8086的编程结构

8086是Intel系列的的16位微处理器,有16根数据线和20根地址线。因为可用20位地址,所以可寻址的地址空间达220字节即1MB

几乎在推出8086微处理器的同时,为了与当时已有的一整套Intel外围设备接口芯片直接兼容,Intel公司还推出了准16位微处理器8088。8088的内部寄存器、内部运算部件以及内部操作都是16位的,但对外的数据总线只有8位

编程结构,就是指从程序员和使用者的角度看到的结构,当然,这种结构与CPU内部的物理结构和实际布局是有区别的。在编程结构图中可看到,从功能上,8086分为两部分,即总线接口部件BIU和执行部件EU

如下图为8086的编程结构
在这里插入图片描述

1.总线接口部件

总线接口部件的功能是负责与存储器、I/O端口传送数据。具体讲,总线接口部件要从内存取指令送到指令队列;CPU执行指令时,总线接口部件要配合执行部件从指定的内存单元或者外设端口中取数据,将数据传送给执行部件,或者把执行部件的操作结果传送到指定的内存单元或外设端口中

8086的总线接口部件由下列各部分组成:
①4个段地址寄存器
CS:16位的代码段寄存器 ;
DS:16位的数据段寄存器 ;
ES:16位的附加段寄存器 ;
SS:16位的堆栈段寄存器 。

②16位的指令指针寄存器IP
③20位的地址加法器
④6字节的指令队列缓冲器

对总线接口部件,下面需要注意两点:
①8086的指令队列为6个字节。CPU在执行指令的同时,从内存中取下面1条指或几条指令放在指令队列中。这样,一般情况下,8086执行完一条指令就可以立即执行一条指令,而不像以往的计算机那样轮番地进行取指令和执行指令的操作,从而提高CPU的效率。
②地址加法器用来产生20位地址。8086可用20位地址寻址1MB的内存空间,但8086内部寄存器都是16位的,所以需要一个附加机构来根据16位寄存器提供的信息计算出20位的物理地址,这个机构就是20位的地址加法器。

比如,一条指令的物理地址就是根据代码段寄存器CS和指令指针寄存器IP的内容得到的。具体计算时,要将CS的内容左移4位,然后再与IP的内容相加。假设CS=FE00H,IP=0200H,此时指令的物理地址为FE200H。

2.执行部件

执行部件的功能就是负责指令的执行

从编程结构图可见到,执行部件由下列几个部分组成:
①4个通用寄存器,即AX、BX、CX、DX。
②4个专用寄存器,即基数指针寄存器BP,堆栈指针寄存器SP,源变址寄存器SI,目的变址寄存器DI。
③标志寄存器FR。
④算术逻辑部件ALU。

对执行部件,有以下4点说明:
①4个通用寄存器既可作为16位寄存器使用,也可作为8位寄存器使用。比如,BX寄存器作为8位寄存器时,分别称为BH和BL,BH为高8位,BL为低8位。
②AX寄存器也称为累加器,指令系统中有许多指令都是利用累加器来执行的。
算术逻辑部件实现算术运算和逻辑运算。
④8086的标志寄存器共有16位,其中7位未用,所用的各位含义如下:
根据功能,8086的标志可以分为两类:一类叫状态标志,另一类叫控制标志。状态标志表示前面的操作执行后,算术逻辑部件处在怎样一种状态,这种状态会像某种先决条件一样影响后面的操作。控制标志是人为设置的,指令系统中有专门的指令用于控制标志的设置和清除,每个控制标志都对某一种特定的功能起控制作用。
状态标志有6个,即SF、ZF、PF、CF、AF和OF。
符号标志SF 它和运算结果的最高位相同。当数据用补码表示时,负数的最高位为1,所以符号标志指出了运算结果是正还是负。

零标志ZF 如运算结果为零,则ZF为1;如运算结果为非零,则ZF
为0。

奇/偶标志PF 如运算结果的低8位中所含的1的个数为偶数,则PF为1,否则为0。

进位标志CF 当加法运算使最高位产生进位时,或者减法运算引起最高位产生借位时,则CF为1。除此之外,移位指令也会影响这一标志。

辅助进位标志AF 当加法运算时,如果第3位往第4位有进位,或者当减法运算时,如果第3位从第4位有借位,则AF为1。此处的第3位是指从0开始计数的。

溢出标志OF 当运算过程中产生溢出时,会使OF为1。当字节运算的结果超出了范围-128+127,或者当字运算的结果超出了范围-32768+32767时,称为溢出
比如,执行下面两个数的加法:
0010001101000101
+0011001000011001
0101010101011110
由于运算结果的最高位为0,所以,SF=0;而运算结果本身不为0,所以,ZF=0;低8位所含的1的个数为5个,即有奇数个1,所以,PF=0;最高位没有产生进位,所以,CF=0;又由于第3位没有往第4位产生进位,所以,AF=0;由于运算结果没有超出有效范围,所以,OF=0。

当然,在绝大多数情况下,一次运算后,并不对所有标志进行改变,程序也并不需要对所有的标志作全面的关注,一般只是在某些操作之后,对其中某个标志进行检测。

控制标志有3个,即DF、IF、TF。

①方向标志DF 这是控制串操作指令用的标志。如果DF为0,则串操作过程中地址会不断增值;反之,如果DF为1,则串操作过程中地址不断减值。

中断允许标志IF 这是控制可屏蔽中断的标志。如IF为0,则CPU不能响应可屏蔽中断请求;如IF为1,则CPU可接受可屏蔽中断请求
跟踪标志TF 也称为单步标志,如果TF为1,则CPU按跟踪方式执行指令。

3.8086的总线周期的概念

为了取得指令或传送数据,就需要CPU的总线接口部件执行一个总线周期。

在8086中,一个最基本的总线周期由4个时钟周期组成,时钟周期是CPU的基本时间计量单位,它由计算机主频决定。比如,8086的主额为10MHz,1个时钟周期就是100ns。在1个最基本的总线周期中,习惯上将4个时钟周期分别称为4个状态,即T1状态、T2状态、T3状态和T4状态。
在T1状态,CPU往多路复用总线上发出地址信息,以指出要寻址的存储单元或外设端口的地址。

②在T2状态,CPU从总线上撤销地址,使总线的低16位浮置成高阻状态,为传输数据作准备。总线的最高4位(Ais~Aig)用来输出本总线周期状态信息。这些状态信息用来表示中断允许状态、当前正在使用的段寄存器名等。

在T3状态,多路总线的高4位继续提供状态信息,而总线的低16位上出现由CPU写出的数据或者CPU从存储器或端口读入的数据。

④由于外设或存储器速度较慢,常常不能及时配合CPU传送数据。这时,外设或存储器会通过READY信号线在T,状态启动之前向CPU发一个“数据未准备好”信号,于是CPU会在T3之后插入1个或多个附加的时钟周期Tw。Tw也叫等待状态,在Tw状态,总线上的信息情况和T,状态的信息情况一样。当指定的存储器或外设完成数据传送时,便在READY线上发出“准备好”信号,CPU接收到这一信号后,会自动脱离Tw状态而进入T4状态。

在T4状态,总线周期结束。
需要指出,只有在CPU和内存或I/O接口之间传输数据,以及填充指令队列时,CPU才执行总线周期。如果在1个总线周期之后,不立即执行下一个总线周期,那么,系统总线就处在空闲状态,此时,执行空闲周期。


http://www.ppmy.cn/news/243325.html

相关文章

8086指令系统(8086基本知识点)

目录 一.指令的寻址 1 操作数寻址 1.1 立即数寻址 1.2 寄存器寻址 1.3 直接寻址 1.4 寄存器间接寻址 1.5 寄存器相对寻址 1.6 隐含寄存器的操作数 2 指令地址寻址 二.8086指令系统 1 数据传送指令 1.1通用传送指令MOV 1.2堆栈操作指令PUSH与POP 1.3交换指令 XCHG…

微机原理——16位微处理器8086/8088CPU

8086/8088CPU 期末考试要求 Intel 8086CPU的结构:执行部件及总线接口部件 执行部件总线接口部件标志位20位的地址加法器 存储器结构 ROM、RAM按字节编址,最大地址空间为 2 n 2^n 2n个字节存储器的分段(段基址、段边界、偏移量)物…

【沧海拾昧】微机原理:8086/8088中断系统

#C0305 沧海茫茫千钟粟,且拾吾昧一微尘 ——《沧海拾昧集》CuPhoenix 【阅前敬告】 沧海拾昧集仅做个人学习笔记之用,所述内容不专业不严谨不成体系 如有问题定为本集记录有谬,切勿深究 目录 一、中断分类 1、外部中断(硬件终…

8088/8086微机系统常用接口芯片控制及状态字

目录 1、8253定时器/计数器 2、8259A中断控制器 3、8255A并行通信接口芯片 4、8251A串行通信接口芯片 1、8253定时器/计数器 1)D7、D6 计数器:题目会明确 2)D5、D4 读/写格式:看计数初值大小及数制 若D0为二进制&#xff0c…

微机原理-8086CPU

文章目录 一、8086CPU的内部结构1.内部结构1-1-1总线接口单元1-1-2指令执行单元 2.工作总流程3.8086CPU内部寄存器1-3-1 数据寄存器1-3-2地址指针和变址寄存器1-3-3段寄存器1-3-4指令指针IP1-3-5标志寄存器FLAGS 二、8086/8088CPU的引脚功能三、8086的存储器组织3-1段地址和偏移…

8086 段寄存器

段寄存器是因为对内存的分段管理而设置的。计算机需要对内存分段,以分配给不同的程序使用(类似于硬盘分页)。在描述内存分段时,需要有如下段的信息:1.段的大小;2.段的起始地址;3.段的管理属性&a…

8086寄存器简介

引子 打算写几篇稍近底层或者说是基础的博文,浅要介绍或者说是回顾一些基础知识, 自然,还是得从最基础的开始,那就从汇编语言开刀吧, 从汇编语言开刀的话,我们必须还先要了解一些其他东西, …

8086寄存器

一、寄存器和数据存储 1.CPU的组成 1.运算器进行信息处理; 2.寄存器进行信息存储; 3.控制器协调各种器件进行工作; 4.内部总线实现CPU内各个器件之间的联系。 2.8086CPU14个存储器 通用寄存器∶AX、BX、CX、DX 变址寄存器∶SI、Dl 指针寄存器:SP、BP 指令指针寄存器︰…