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 (Base):基地址寄存器;

CX (Count):计数器寄存器;

DX (Data):数据寄存器;

SP 和 BP 又称作为指针寄存器:

SP (Stack Pointer):堆栈指针寄存器;

BP (Base Pointer):基指针寄存器;

SI 和 DI 又称作为变址寄存器:

SI (Source Index):源变址寄存器;

DI (Destination Index):目的变址寄存器;

控制寄存器:

IP (Instruction Pointer):指令指针寄存器;

FLAG:标志寄存器;

段寄存器:

CS (Code Segment):代码段寄存器;

DS (Data Segment):数据段寄存器;

SS (Stack Segment):堆栈段寄存器;

ES (Extra Segment):附加段寄存器;

数据寄存器(AX,BX,CX,DX):

AX 寄存器可以分为两个独立的 8 位的 AH 和 AL 寄存器;

BX 寄存器可以分为两个独立的 8 位的 BH 和 BL 寄存器;

CX 寄存器可以分为两个独立的 8 位的 CH 和 CL 寄存器;

DX 寄存器可以分为两个独立的 8 位的 DH 和 DL 寄存器;

除了上面 4 个数据寄存器以外,其他寄存器均不可以分为两个独立的 8 位寄存器 ;

CS:IP 两个寄存器指示了 CPU 当前将要读取的指令的地址,其中  CS  为代码段寄存器,而   IP  为指令指针寄存器 。

在任何时刻,SS:SP  都是指向栈顶元素 。

DS 寄存器和 ES 寄存器:

DS  寄存器和  ES  寄存器都属于段寄存器,其实它们和  CS  寄存器以及  SS  寄存器用起来区别不大,既然是段寄存器的话,自然它们存放的就是某个段地址了 。我们已经知道,如果  CPU  要访问一个内存单元时,我们必须要提供一个指向这个内存单元的物理地址给  CPU ,而我们也知道在  8086  CPU  中,物理地址是由段地址左移 4  位,然后加上偏移地址形成的,所以,我们也就只需要提供段地址和偏移地址即 OK 。8086  CPU  呢,提供了一个  DS  寄存器,并且通常都是通过这个  DS  段寄存器来存放要访问的数据的段地址 。DS(Data  Segment):很显然,DS 中存放的是数据段的段地址 。但是这里不得不再点一下,那就是我们对段的支持是在  CPU  上体现的,而不是在内存中实现了段,所以事实上我们使用的段其实是一个逻辑概念,即是我们自己定义的,再说白了,我定义一个段,我说它是数据段那它就是数据段,我说它是代码段那么它就是代码段,它们其实都是一块连续的内存而已,至于为什么要区分为数据段和代码段,很明显,是用来给我们编程提供方便的,即我们在自己的思想上或者说是编码习惯上规定,数据放数据段中,代码放代码段中 。而我们在使用数据段的时候,为了方便或者说是代码的编写方便起见,我们一般把数据段的段地址放在  DS  寄存器中,当然,如果你硬要觉得  DS  不顺眼,那你可以换个  ES  也是一样的,至于  ES(Extra  Segment)  段寄存器的话,自然,是一个附加段寄存器,如果再说得过分点,就当它是个扩展吧,当你发现,你几个段寄存器不够用的时候,你可以考虑使用   ES  段寄存器,在使用方式上,则和其他的段寄存器没什么区别  。

8086CPU寄存器,布布扣,bubuko.com

时间: 2024-10-12 21:22:52

8086CPU寄存器的相关文章

8086CPU寄存器简介

8086 CPU中寄存器总共为14个,且均为16位. 即AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES共14个. 通用寄存器: AX,BX,CX,DX称作为数据寄存器: AX(Accumulator):累加寄存器,也称之为累加器: BX(Base):基地址寄存器: CX(Count):计数器寄存器: DX(Date):数据寄存器: SP和BP又称作为指针寄存器: SP(Stack Pointor):堆栈指针寄存器: BP(Base Pointer):基指针

微机手册

微机手册 834 考研 常见知识点 第1章 绪论 第2章 8086 系统结构 2.0 介绍 2.1 8086 CPU 结构 2.1.1 8086CPU的内部结构 2.1.2 寄存器结构 第1章 绪论 在计算机中引入补码主要鉴于下列两个原因 (1)使符号位能够和有效数值部分一起参加数值运算,从而简化运算规则,节省运算时间. (2)使减法运算转化为加法运算,从而进一步简化计算机中运算器的线路设计. 数据类型 字节(Byte):1字节=8位二进制数,字节数据以无符号和有符号的整数形式存储.DB 字(W

汇编语言学习

零散记录: 8086CPU寄存器都为16位的,可存放两个字节:AX.BX.CX.DX这4个寄存器是通常用来存放一般性的数据,被称为通用寄存器. AX: 以8086CPU而言,这四个寄存器都可分为两个可独立使用的8位寄存器使用,以-H和-L表示左右八位; 指令mov,add: 左操作数 = 左操作数与右操作数运算结果. 8086CPU中给出物理地址方法: 两个16位地址合成一个20位物理地址: 段地址×16+偏移地址 = 物理地址: '段地址×16' 可视为基础地址:内存也以此分段的方式管理内存:

第八章 数据处理的两个基本问题

一.bx.si.di和bp ①在8086CPU寄存器中,只有这四个寄存器可以用在"[....]"中来表示进行内存单元的寻址. ②在[....]中,这4个寄存器可以单个出现,或者只能以4种组合出现:bx和si.bx和di.bp和si.bp和di. ③使用bx, si, di表示偏移地址时,默认段地址在ds中可以加前缀es, cs,ss.只要在[....]中使用寄存器bp,而指令中没有显性地给出段地址,段地址就默认在ss中,可以加前缀ds,es,cs. 二.机器指令处理的数据在什么地方 机

段寄存器(8086CPU)和代码段

1.段寄存器 8086CPU有4个段寄存器:CS.DS.SS.ES.当8086CPU访问内存时,由这4个段寄存器提供内存单元的段地址. CS和IP是8086中最关键的寄存器,他们指示了CPU当前要读取指令的地址.CS是代码段寄存器,IP为指令指针寄存器.在8086PC机中,任意时刻,设CS中的内容是M,IP中的内容是N,8086CPU将从内存地址:M*16+N处读取指令并执行.也可以这样表述,8086机中,任意时候,CPU将CS:IP指向的内容当做指令执行,.CPU将CS.IP中的内容当做指令的

8086CPU各寄存器的用途

8086 有14个16位寄存器,这14个寄存器按其用途可分为(1)通用寄存器.(2)指令指针.(3)标志寄存器和(4)段寄存器等4类. 1.通用寄存器有8个, 又可以分成2组,一组是数据寄存器(4个),另一组是指针寄存器及变址寄存器(4个). 数据寄存器分为:AH&AL=AX(accumulator):累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,另外,所有的I/O指令都使用这一寄存器与外界设备传送数据.BH&BL=BX(base):基址寄存器,常用于地址索引:CH&C

基于8086CPU微处理器的汇编学习之MOV指令

汇编指令:MOV的作用是往某个寄存器中存入数值. 格式:mov  寄存器名,数值                数值-->寄存器 mov  寄存器A,存器寄B          B-->A PS:必须前后位数匹配,如: mov   ah,bx     ;error   ah is 8 bit,bx is 16 bit mov   ah, bh    ;right    ah and bh all is 8  bit mov   cx,dx     ;right     cx and dx al

汇编语言第三版 第二章 寄存器

问题1.8086CPU的地址总线为20bit,而数据总线为16bit--也就是说每次传输的数据为16bit,那么如何使用16bit的数据总线来实现20bit的地址总线的地址传输? 答:8086CPU使用两个16bit的地址合成一个20bit的物理地址. 16bit A: XXXX 16bit B: XXXX 20bit物理地址的合成 A *16 也就是将A(16进制表示的数值),向左移动一位,然后加上B.A * 16  +  B.物理地址 = 段地址 * 16 + 偏移地址 16bit A: X

汇编语言--寄存器(cpu工作原理)

本文地址:http://www.cnblogs.com/archimedes/p/assembly-register.html,转载请注明源地址. 本文主要将介绍的是8086 CPU中的寄存器, 寄存器就是个存储信息的单元或者说是器件又或者说是容器而已,就比如内存也是一个存储介质或者说是存储单元而已,其实寄存器从理解上来说和内存差不多, 只不过寄存器(这里讨论的寄存器都是 CPU 中的寄存器,不包括外设上的寄存器)位于CPU内部,寄存器是 CPU 中的稀有资源,而对于一个汇编程序员来说,CPU