首页 > 其他分享 >8086/8088CPU的储存器结构(一)

8086/8088CPU的储存器结构(一)

时间:2024-07-12 18:55:09浏览次数:11  
标签:标志 8086 运算 储存器 flag 8088CPU 地址 存放 寄存器

一、CPU的寄存器

1、通用寄存器组

执行部件EU中有8个16位通用寄存器。可分为两组,

第一组为通用数据寄存器,由AX,BX,CX和DX构成;

第二组为指针与变址寄存器,由SP,BP,SI和DI构成;主要用来存放操作数的偏移地址

(1)通用数据寄存器

用来存放16位的数据或地址,也可以分别将这四个寄存器AX,BX,CX,DX拆成两部分,高半部分和低半部分,高半部分民命名为AH,BH,CH,DH,而低半部分命名为AL,BL,CL,DL,因此,原本四个能用来存放16位的数据或地址的寄存器就变成八个只能用来存放数据而不能存放地址的8位寄存器。

·AX:累加器,是算术运算时使用的主要寄存器,所有外部设备的输入输出指令只能使用AL 或者AH作为数据寄存器。

BX:基址寄存器,顾名思义,即基本地址寄存器,是具有双重功能的寄存器,既可用作数据寄存器,在访问储存器时,又可存放被读写的储存单元的地址。

CX:计数寄存器,可用作数据寄存器,在字符串操作、循环操作和移位操作时用作计数器。

DX:数据寄存器,在乘除法中作为辅助累加器,在输入输出操作中存放接口的地址。

(2)指针和变址寄存器

主要用来存放操作数的偏移地址,即操作数的段内地址

SP:堆栈(stack)指针寄存器,在堆栈操作中存放栈顶的偏移地址

BP:基址指针寄存器,常用作堆栈区的基地址寄存器。

SI:源变址寄存器,在字符串操作中存放源操作数的偏移地址。

变址寄存器内存放的地址在数据传送完成后,具有自动修改的功能。

DI:目的(destination)变址寄存器,在字符串操作中存放目的操作数的偏移地址。

2、断寄存器

CPU总线接口部件BIU中设置有4个16位段寄存器,分别是代码段寄存器CS, 数据段寄存器DS, 附加段寄存器ES, 堆栈段寄存器SS.  编程时,程序和各种不同类型的数据分别存放在不同的逻辑段中,他们的 “段地址” 存在 “段寄存器” 中,段内的偏移地址存在于指针寄存器或者变址寄存器中。

CS代码【code】段(segment)寄存器,程序代码超过64K时,需要分成几个段存放。CS存放的是正在执行的程序段的段基址。

DS数据段寄存器,存放当前使用的数据。

ES:若当前使用的数据量太大,则需要增加第二个数据段,这时,附加段ES则派上用场。

SS堆栈段寄存器,是内存中的一块存储区,存放专用数据。

3、控制寄存器

(1)标志寄存器FLAGS

共9个标志位,可分两类

第一类:状态标志,包括CF, PF, AF, ZF, SF和OF,用来表示运算结果特征,是否全零,是否溢出等;

第二类:控制标志,包括IF, DF 和TF,用来控制CPU操作,从上到下或从下到上等 。

CF:(carry flag)进位标志位CF=1,表示本次加法运算中有进位或者减法运算中有借位。

进行两个无符号数的加减法运算后,CF=1,表示运算的结果超出了该字长能够表示的数据范围。例如,执行8位数据运算后,CF=1表示结果超出255(2^7+2^6+……+2^0),或者是减法得到的差小于零。

进行有符号数运算时,CF对运算结果没有直接意义。

PF:(parity flag)奇偶标志位。用来进行奇偶校验(传输数据过程中有没有出现数据丢失的现象),或生成奇偶校验位

PF=1,本次运算结果的低八位有偶数个1 

PF=0,本次运算结果的低八位有奇数个0 

AF:(auxiliary carry flag)辅助进位标志位。

AF=1,表示8位运算结果(仅限于AL寄存器)中低四位向高4位有进位或者借位,这个标志位只在BCD数运算中起作用。

ZF:(zero flag)零标志位。

ZF=1,运算结果全为0;否则ZF=0.

⑤SF:(sign flag)符号标志位

SF=1,表示运算结果最高位为“1”,  否则SF=0;

OF:(overflow flag)溢出标志位。

OF=1 ,表示两个用补码表示的有符号数的加法或减法结果超出了该字长所能表示的范围。

例如:进行八位运算时,OF=1,表示运算结果大于127或者小于-128,此时不能得到正确的运算结果。         OF标志对无符号数的运算结果没有意义。

OF是根据操作数的符号及其变化情况设置的。

例如:加法运算时,两个操作数的符号相同,而结果的符号与之相反,也就是判断最高位和次高位是否同时产生进位,则OF=1,   否则位0.

IF:(interrupt flag)终端允许标志位。

IF=1 表示允许CPU响应可屏蔽中断。 该标志可通过STI指令置位,也可通过CLI指令复位(清零)。

DF:(direction flag)方向标志位

在串操作指令中,若DF=0,表示串操作指令执行后地址指针自动增量,由低地址向高地址进行;

DF=0,表示地址指针自动减量,由高地址向低地址进行

DF标志位可通过STD指令置位,也可通过CLD指令复位。

TF:(trap flag)单步标志位。

TF=1,控制CPU进入单步工作方式。在这种工作方式下,CPU每执行完一条指令就会自动产生一次内部中断。

例题:

AL=3BH,  AH=7DH,指出AL和AH中的内容相加后,标志CF, AF, PF, SF, OF 和ZF 的状态。

解:AL=3BH=0011 1011B

        AH=7DH=0111 1101B

相加须先化成补码,但由于是正数,源码=反码=补码

相加后得         1011 1000

CF:运算时最高位没有进位,为0

AF:低四位有向高四位进位,为1

PF:结果有偶数个1,  为1

SF:结果最高位为1, 为1

OF:结果没超过127,不算溢出,为0

ZF:结果不是全0,为0

标签:标志,8086,运算,储存器,flag,8088CPU,地址,存放,寄存器
From: https://blog.csdn.net/Charlotte_He/article/details/140359424

相关文章

  • 8086,8088CPU的工作方式
    工作模式完全由硬件决定,可在两种模式下工作,即最大模式和最小模式。(1)最小模式:系统中只有8086或8088一个微处理器,所有总线控制信号都直接由微处理器产生,这种模式下,系统中的总线控制逻辑电路最少。(2)最大模式:用在中等规模或者大型的系统中,包含两个及以上的微处理器,CPU不直接产生......
  • 认识8086处理器
    8086处理器是英特尔(Intel)在1978年推出的一款16位微处理器,它是x86架构以及计算机科技发展史的重要里程碑。如今我们学习x86汇编绕不开8086处理器。通用寄存器8086处理器有八个十六位通用寄存器:AXBXCXDXSIDIBPSP。AXBXCXDX四个寄存器又可分为八个八位处理器。以......
  • 8086 汇编笔记(十):标志寄存器
    前言一、ZF标志ZeroFlag,零标记位。用于记录相关指令执行后,其结果是否为0。如果结果为0,则ZF=1,如果结果非0,则ZF=0 movax,1subax,1;ZF=1movax,2subax,1;ZF=0二、PF标志ParityFlag,奇偶标记位。它用于记录相关指令执行后,其结果的所有bit位中1的个......
  • 8086 汇编笔记(五):包含多个段的程序
    一、在代码段中使用数据“dw”的含义是定义字型数据dw0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hcodesegmentdw0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hmovbx,0movax,0movcx,8s:addaxcs:[bx]addbx,2loops......
  • 基于8086步进电机调速系统设计
    **单片机设计介绍,基于8086步进电机调速系统设计文章目录一概要二、功能设计设计思路三、软件设计原理图五、程序六、文章目录一概要  基于8086步进电机调速系统设计概要如下:一、设计背景与目标步进电机作为一种精确控制位置和速度的执行机构,在工业自动......
  • [转帖]IT历史连载22-高端储存器的历史
     时游信息通信打工人已关注 IT历史连载22-高端储存器的历史1949年10月:王安博士申请磁芯存储器专利,除了技术上和旋风计算机所采用的磁芯存储器进行了一定的回避处理之外,王安博士还在发明专利中增加了一个更强大的“必杀技”-“读后写”技术。1956年:经过......
  • 8086 汇编学习 Part 9
    端口的读写CPU的邻居CPU内部的寄存器内存单元端口(各种接口卡、网卡,显卡,主板上的接口芯片等)各种芯片工作时,都有一些寄存器由CPU读写从CPU角度,将各寄存器当端口,并统一编制CPU用统一的方法与各种设备通信读写端口的指令在对\([0,255]\)的端口进行读写时,端口......
  • 8086 汇编学习 Part 6
    用MUL指令做乘法格式MUL寄存器MUL寄存单元8位乘法16位乘法被乘数(默认)ALAX乘数8位寄存器或内存单元16位寄存器或内存字单元结果AXDX(高位)和AX(低位)模块化程序设计调用子程序:CALL指令返回:RET指令实质流程转移指令,它们都修改......
  • 8086 汇编学习 Part 5
    流程转移背景一般情况下指令是顺序地逐条执行的,而在实际中,常需要改变程序的执行流程。转移指令可以控制CPU执行内存中某处代码的指令。可以修改IP,或同时修改CS和IP的指令。分类按转移行为分类段内转移:只修改IP(例如JMPAX)段间转移:同时修改CS和IP(例......
  • 8086 汇编学习 Part 4
    寻址方式形式名称特点意义示例[idata]直接寻址用一个常量/立即数来表示地址用于直接定位一个内存单元MOVAX,[200][BX]寄存器间接寻址用一个变量来表示内存地址用于间接定位一个内存单元MOVAX,[BX][BX+idata]寄存器相对寻址用一个变量和常量......