8086_14个寄存器

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

8086有14个寄存器:AX,BX,CX,DX,SP,BP,SI,DI,DS,ES,SS,CS,IP,flags。

// 以下为这14个寄存器的速查表。要记清楚每个寄存器的详细用法,还是多写代码,汇编:王爽-汇编

如图:在debug下用r命令查看各个寄存器Register:

  已知,8086CPU分为两部分:总线接口单元BIU和执行单元EU。

  见:8086CPU内部结构

  为方便记忆,这14个寄存器分组记忆。

  BIU:总线接口单元,完成CPU<-->存储器/IO设备之间的数据传送。

  EU:执行单元,执行指令。

寄存器


  下面是各个寄存器的英文全称和意义:



接下来是各个寄存器的具体介绍(顺序:ABCD_X, SB_P, SD_I, DESC_S, IP, flags。就这样速记吧)

1. 4个数据寄存器(X结尾表示通配H和L,比如说AX作为一个16位寄存器,可以拆分为高8位的AH和低8位的AL使用)

  AX(Accumlator X),作为一个累加器,普通操作:存放加数。(或别的数据)

  BX(Based X),基本的。

  CX(Counter X),计数器,CX可以做一件别的寄存器都做不了的事:在loop循环中存放循环次数,每次递减。

  DX(Data X),存放数据。

  以下为更详细的介绍:


2. 两个指针寄存器&2个变址寄存器

  SP(Stack Pointer):栈顶指针。用于保存栈顶元素所在的偏移地址EA(Effective Address,有效地址|偏移地址)。

栈顶两个内存单元格的物理地址,我们用逻辑地址表示,形式:SA:EA,即“段地址:逻辑地址”的形式。段地址放在SS(Stack Segment)栈段寄存器中,这是基础。随着元素的入栈出栈操作,栈顶位置在变化,所以需要一根针,指向这个位置。SP就是这根针。我们的入栈出栈操作都是要先通过SP找到栈顶位置,才能进行后续操作。

  BP,也是一根针。Pointer。

  SI和DI(xx Index),这两个变址寄存器,也是保存偏移地址,用作寻址。



3. 4个段寄存器和两个控制寄存器

  DS, ES, SS正如其名,分别存放数据段,额外(附加数据)段,栈段的段地址。当然,谁作为偏移地址与之相配合,也是有固定的规则:


  CS:IP

  计算机要工作,只会按照既定的轨迹|流程|指令去操作,而要执行的指令时不断在变化,这些指令的地址|存放位置在哪里?

  CS存放代码所在的段,IP是一个Pointer,可以指向不同的位置。(范围不会太大,64KB)。


  flags,就是一些flag|标志位的集合。

  在程序的流程控制中有很多判断,而在底层的实现是没有if..else什么的。解决方式就是:我们的运算或其他操作会影响标志位的状态1或0,而之后的程序 执行路径|流程 会由这些flags的标志位影响。

  flags也是一个16位寄存器,而其中只有9位是有用的。有标志位。每个位通过他的值1或0来表示一个标志是否成立。

  比如说ZF(Zero Flag)。

  执行下面的汇编代码(含伪码)。执行完sub ax, 4之后,结果为0,那么就会将flags中的ZF状态位置1,表示刚才的操作结果为0。而后面的判断,会根据flags中相应位的值,取决定接下来的程序流程。

mov ax, 4
sub ax, 4
如果 (结果==0) 情况1;
否则 情况2;

  详见下一篇 8086的flags




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

相关文章

Spring架构篇--2.7.1 远程通信基础--Netty原理--NioEventLoopGroup

前言&#xff1a;在使用Netty 时不管是服务端还是客户端都需要 new NioEventLoopGroup 对象进行工作&#xff0c;NioEventLoopGroup的作用是什么呢&#xff1b; 1 NioEventLoopGroup 类图&#xff1a; 从类名字来看它是一个Nio 流的事件轮询器组&#xff0c;既然是一组顾名思…

【微机接口】8086中断指令

4个指令 开中断指令STI&#xff1a;F寄存器中I标志置1&#xff0c;CPU处于开中断 I标志用于控制CPU是否响应来自引脚INTR的可屏蔽中断请求。I为0表示CPU不响应可屏蔽中断请求。 关中断指令CLI&#xff1a;F寄存器中I标志置0&#xff0c;CPU处于关中断 软件中断指令INT n n…

8086的编程结构

8086的编程结构 8086是Intel系列的的16位微处理器&#xff0c;有16根数据线和20根地址线。因为可用20位地址&#xff0c;所以可寻址的地址空间达220字节即1MB。 几乎在推出8086微处理器的同时&#xff0c;为了与当时已有的一整套Intel外围设备接口芯片直接兼容&#xff0c;In…

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的结构&#xff1a;执行部件及总线接口部件 执行部件总线接口部件标志位20位的地址加法器 存储器结构 ROM、RAM按字节编址&#xff0c;最大地址空间为 2 n 2^n 2n个字节存储器的分段&#xff08;段基址、段边界、偏移量&#xff09;物…

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

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

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

目录 1、8253定时器/计数器 2、8259A中断控制器 3、8255A并行通信接口芯片 4、8251A串行通信接口芯片 1、8253定时器/计数器 1&#xff09;D7、D6 计数器&#xff1a;题目会明确 2&#xff09;D5、D4 读/写格式&#xff1a;看计数初值大小及数制 若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段地址和偏移…