8086_14个寄存器

汇编语言8086CPU之寄存器总结 寄存器是什么呢? 其实很简单,寄存器就是个存储信息的单元或者说是器件又或者说是容器而已,就比如内存也是一个存储介质或者说是存储单元而已,其实寄存器从理解上来说和内存差不多,只不过寄存器(这里讨论的寄存器都是 CPU 中的寄存器,不包括外设上的寄存器)位于 CPU 内部,而内存位于 CPU 外部,而且,寄存器比内存可是珍贵得多啊,就拿内存和硬盘来比,肯定是内存在使用上珍贵得多,是 PC 中的稀有资源,而寄存器是 CPU 中的稀有资源,内存和寄存器相比就像硬盘和内存相比一样 。 而对于一个汇编程序员来说,C 阅读详情

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



8086CPU中14个寄存器的详解 CPU中的寄存器 在执行单元EU和总线接口单元BIU中一共有14个寄存器,其中通用寄存器8个、标志寄存器FLAGS一个、控制寄存器5个。 通用寄存器 8个通用寄存器再进行细分,又可划分为数据寄存器(AX~DX)、栈顶指针寄存器(SP)、基址寄存器(BP)、DI(目标变址寄存器)、SI(源变址寄存器)。 1. 数据寄存器(AX、BX、CX、DX) 16位的数据寄存器可以拆成2个8位寄存器(例如:AX->AH+AL等)来使用,但是一定要注意“8086为16位寄存器,8位寄存器中存放的一定是数 阅读详情

相关推荐

微机原理(8086基本知识点)

8086一

laohuchishizi的博客 1万+

寄存器(8086CPU)概述与作用

寄存器是CPU中程序员可以用指令读写的部件,程序员通过改变各种寄存器中的内容来实现对CPU的控制。 所有寄存器均为16位,可以存放两个字节。这 14 个寄存器按照一定方式又分为了通用寄存器控制寄存器和段寄存器。通用寄存器:数据寄存器指针寄存器:SP、BP变址寄存器:SI、DI段寄存器:CS、SS、DS、ES控制寄存器:IP、FLAG寄存器。

tju_zxl的博客 7527

8086汇编(16位汇编)学习笔记10.寄存器总结

IP 它与代码段寄存器 CS联用,永远存储着即将执行的指令的地址,每执行完一条指令,CPU都会根据CS:IP找到下一条指令,同时IP被赋值为再下一条指令的地址。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0。(1)如果TF=1,则CPU处于单步执行指令的工作方式,此时每执行完一条指令,就显示CPU内各个寄存器的当前值及CPU将要执行的下一条指令。8086有一个18位的标志寄存器FR,在FR中有意义的有9位,其中6位是状态位,3位是控制位。

彭于晏长沙分晏 1712

8086汇编寄存器及指令汇总

1   寄存器的分类 通用寄存器: ax,bx,cx,dx,(ah,al,bh,bl,ch,cl,dh,dl); sp,bp,si,di 指令寄存器: ip 标志寄存器: FR 段寄存器: cs,ds,ss,es 2   ax,bx,cx,dx 这四个寄存器存放一般数据,你可以在里面存放任何数据,但是其用途会有不同。 AX (

u011555996的博客 2万+

如何从Matlab工作区读取数据,并按时序将数据输入Simulink中

如何从Matlab工作区读取数据,并按时序将数据输入Simulink中 例如:一周掌握 Java 入门知识 学习内容: 提示:这里可以添加要学的内容 例如: 1、 搭建 Java 开发环境 2、 掌握 Java 基本语法 3、 掌握条件语句 4、 掌握循环语句 学习时间: 提示:这里可以添加计划学习的时间 例如: 1、 周一至周五晚上 7 点—晚上9点 2、 周六上午 9 点-上午 11 点 3、 周日下午 3 点-下午 6 点 学习产出: 提示:这里统计学习计划的总量 例如: 1、 技术笔记 2 遍

weixin_44899540的博客 1万+

K230开发板实战:5步搞定YOLOv8模型部署(附常见报错解决方案)

本文提供了一份详细的K230开发板部署YOLOv8模型的实战教程。内容涵盖从环境准备、模型转换到代码编写的完整流程,并重点解析了使用AICube工具链时常见的“生成部署文件异常”等报错解决方案,旨在帮助开发者高效完成嵌入式AI模型部署。

weixin_29053073的博客 784

【接口技术】8086/8088cpu含有14个16位寄存器详解

8086/8088cpu含有14个16位寄存器详解1、分类2、14个寄存器——8个通用寄存器2.1 14个寄存器——8个通用寄存器——4个数据寄存器2.2 14个寄存器——8个通用寄存器——2个地址寄存器2.3 14个寄存器——8个通用寄存器——2个变址寄存器3、14个寄存器——2个控制寄存器3.1 14个寄存器——2个控制寄存器——1个控制寄存器3.1.1 14个寄存器——2个控制寄存器——1个控制寄存器FLAGS——6位状态位3.1.2 14个寄存器——2个控制寄存器——1个控制寄存器FLAGS——3位

一拳Marx 6876

深入解析:如何基于开源OpENer开发EtherNet/IP从站服务

通过OpENer开源库,开发者可以快速实现符合ODVA规范的EtherNet/IP从站设备,降低开发成本并提高系统灵活性。本文详细介绍了EtherNet/IP协议原理、OpENer库的特点与优缺点,以及二次开发的完整流程。通过遵循本文提供的指南,开发者可以成功构建出工业级的EtherNet/IP通信设备。

极地星辰 2998

2021-7-24 8086CPU 内 14 个寄存器功能一览

8086 CPU 中寄存器总共为 14 个,且均为 16 位 。 即 AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES 共 14 个。 这 14 个寄存器按照一定方式分为了通用寄存器,控制寄存器和段寄存器。 通用寄存器: AX,BX,CX,DX 称作为数据寄存器: AX (Accumulator):累加寄存器,也称之为累加器; BX (Base):基地址寄存器; CX (Count):计数器寄存器; DX (Data):数据寄存器; SP 和 BP 又称作为指...

Menou16的博客 2774

GaN制备micro-led(一)

随着第三代半导体 GaN 材料的快速发展,GaN 基 LED 发展迅速并广泛商业化,这 为可见光通信的实现及应用提供了基础。然而,普通商用 LED 的调制带宽只有几十兆 赫兹,并不能很好的满足可见光通信系统高传播速率的需求。为增大调制带宽,针对发 射端 LED 光源部分的改进仍需提高。将光子晶体结构引入 LED 芯片量子阱内部,能够 影响光子寿命和光子传播,进而改变 LED 芯片的调制带宽和光提取效率。结合倒装微 尺寸(Micro)LED 结构,使其封装体积最小化,这使得可见光通信能够更加灵活地.

weixin_45852211的博客 895

iOS开发者必备:从越狱设备里提取IPA的三种方法(含Filza、iTools实战)

本文详细介绍了iOS开发者从越狱设备提取IPA文件的三种实用方法,包括使用Filza文件管理器、AFC2配合桌面工具以及命令行高级技术。内容涵盖环境准备、操作步骤和技术原理,帮助开发者高效获取应用包文件,适用于逆向工程、测试分析等场景。

weixin_28717969的博客 812

8086CPU的14个寄存器全称

转载于: https://blog.youkuaiyun.com/knxw0001/article/details/7249248. 通用寄存器: ax——accumulate register——累加器 bx——based register——基地址寄存器 cx——count register——计数器 dx——data registered——数据寄存器 段寄存器: cs——code segment——代码段 ds——data segment——数据段 ss——stack segment——栈段寄存器 es——ex

double_piga的博客 1984

Python处理高光谱数据#3 降维

基于Python的高光谱降维操作 高光谱数据:点击此处可下载 用到的库:matplotlib、scipy、spectral 主要内容:主成分分析(PCA)与线性判别(LDA) 欢迎有兴趣的朋友交流指点。最后,废话不多说直接上代码???? import matplotlib.pyplot as plt from scipy.io import loadmat import spectral as spy

qq_273058791的博客 6936

泛谈8086寄存器(14个)

8086CPU的所有寄存器都是16位的,可以存放两个字节 通用寄存器:ax、bx、cx、dx       这四个通常用来存放一般性的数据 下面便是这四个寄存器的逻辑结构,此时存放着16位表示的0。 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 这四个寄存器也可以看作两个8位寄存器,...

weixin_42496727的博客 315

材料带隙预测(图神经网络)(⭐⭐)—— 用晶体图网络预测钙钛矿材料的能带隙,加速光伏材料筛选。技术栈:CGCNN、MEGNet、Materials Project数据集

钙钛矿太阳能电池以其高效率、低成本的优势迅速崛起,但传统“试错法”材料筛选效率极低,严重制约了光伏技术的迭代速度。近年来,基于图神经网络的材料带隙预测方法,特别是晶体图神经网络(CGCNN)和材料图网络(MEGNet),为这一问题提供了革命性的解决方案。本文系统梳理了材料带隙预测从传统计算到深度学习的演进历程,深入剖析了CGCNN与MEGNet的架构设计、数学原理及创新机制,详细阐述了Materials Project数据集的构建、特征工程与处理策略。

2201_76125393的博客 47

点云焊缝提取

本文介绍了一个基于PCL库的点云处理流程,包含三个核心模块:MLS平滑处理通过多项式拟合修正点云位置;差异提取通过双向匹配定位源/目标点云的非重叠区域;统计过滤剔除离群噪声点。该流程采用"平滑-筛选-净化"的通用思路,将复杂算法封装为可配置接口,实现了工业级点云预处理。文章重点分析了各模块的原理、PCL接口调用及参数设计逻辑,同时指出参数调优、算法扩展等深入探索方向,展现了PCL在点云处理中的模块化优势与实用价值。

weixin_45196569的博客 250

8086CPU的14个寄存器day_01

AX:累加器,I/O端口访问与外设交换的信息、累加器;(例:IN AX,12H 将端口地址为12H的内容送到AX中) BX:基址寄存器,存放操作数在数据段内的偏移地址,也可存放数据;(例:MOV AX,BX 将BX送到AX中;MOV AX,[BX] 将内存中数据段中偏移地址为BX的内容送给AX) CX:程序计数器,也可用其它数据寄存器存放操作次数,当用CX时,后面有Loop语句时,CX会自动减...

JAVA_day01 637

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

8086CPU各寄存器及其简介

8086 CPU 中寄存器总共为 14 个,且均为 16 位 。 即AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES共 14 个。 而这 14 个寄存器按照一定方式又分为了通用寄存器,控制寄存器和段寄存器。 通用寄存器: AX,BX,CX,DX 称作为数据寄存器: AX (Accumulator):累加寄存器,也称之为累加器; BX (Bas...

猫和大海@—@的博客 4万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

8086汇编-13~14寄存器(内存访问)01~02

就是 mov al,[0] 这样,意思就是 将 内存 0:0 地址中的数据值,送入al 寄存器中 , 这个时候ds == 0000,而[0] 就是ds 的偏移。add bx,[1] 这里也要注意.因为bx 是16位寄存器,所以与其做add 运算的另一个数据也必须是 16位的,高位有就补上,没有就补0, 就和古时候娶亲一样,要门当户对!用mov al,[0]完成传送(mov指令中的[]说明操作对象是一个内存单元,[]中的0说明这个内存单元的偏移地址是0,它的段地址默认放在ds中)

优快云_DaShuiNiu的博客 424

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

8086 CPU 寄存器简介

8086  CPU 中寄存器总共为 14 个,且均为 16 位 。即 AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES 共 14 个。而这 14 个寄存器按照一定方式又分为了通用寄存器,控制寄存器和段寄存器。通用寄存器:AX,BX,CX,DX 称作为数据寄存器:AX (Accumulator):累加寄存器,也称之为累加器;BX (Base):基地址寄存器;CX

张勤一 2247

关于8086的寄存器

关于8086的寄存器基础知识

qq_27023657的博客 665

8086 CPU 寄存器

8086 CPU 中寄存器

ulan420的博客 6267

x86 8086 CPU 寄存器详解

8086 微处理器是 Intel 在 1978 年推出的一款 16 位微处理器,它在计算机体系结构的发展中占有重要地位。8086 处理器拥有 14 个 16 位寄存器,这些寄存器被分为几类:通用寄存器、段寄存器、指令指针寄存器和标志寄存器。以下是这些寄存器的详细介绍,包括它们的功能以及如何形成物理地址。

weixin_42105599的博客 2078
上一篇: 8086_CPU_内部结构
下一篇: sublime text 配置Java环境
jinxiutf666
博客等级 码龄9年 8粉丝 5原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值