通用寄存器和专用寄存器有啥区别和联系?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通用寄存器和专用寄存器有啥区别和联系?相关的知识,希望对你有一定的参考价值。
对于8086的系统:1.寄存器按照功能的不同可分为通用寄存器(AX,BX,CX,DX,SP,BP,SI,DI。其中的前四个寄存器可分别分成AH,AL ;BH,BL;CH,CL;DH,DL的八位寄存器)、指令指针寄存器(IP)、标志寄存器(FLAGS)、段寄存器(CS,DS,ES,SS)。它们的区别和联系体现在它们的功能上,对它们的深入了解和正确运用需要通过编写程序来实现。
2.大致功能如下:
AX,可存放一般数据,而且可作为累加器使用;
BX,可存放一般数据,而且可用来存放数据的指针(偏移地址),常常和DS寄存器连用;
CX,可存放一般数据,而且可用来做计数器,常常将循环次数用它来存放;
DX,可存放一般数据,而且可用来存放乘法运算产生的部分积,或用来存放输入输出的端口地址(指针);
SP,用于寻址一个称为堆栈的存储区,通过它来访问堆栈数据;
BP,可存放一般数据,用来存放访问堆栈段的一个数据区,作为基地址;
SI,可存放一般数据,还可用于串操作中,存放源地址,对一串数据访问;
DI,可存放一般数据,还可用于串操作中,存放目的地址,对一串数据访问;
IP,用于寻址当前需要取出的指令字节,程序员不能对它直接操作;
FLAGS,用于指示微处理器的状态并控制它的操作;
CS,代码段寄存器,代码段是一个存储区域,存放的是CPU要使用的代码,CS存放代码段的段基地址;
DS,数据段寄存器,数据段是包含程序使用的大部分数据的存储区,DS中存放数据段的段基地址;
ES,附加段寄存器,附加段是为某些串操作指令存放目的操作数而附近的一个数据段,ES中存放该数据段的段基地址;
SS,堆栈段寄存器,堆栈段是内存中一个特殊的存储区,用于暂时存放程序运行时所需的数据或地址信息。SS中存放该存储区的段基地址。
基本功能就是这些,要想透彻掌握深层的寄存器功能,必须要编写汇编源程序,可用微软的masm汇编程序进行编译,用dos系统自带的debug命令调试,直到程序正确运行,才能体会其中的奥妙。
最后,还是用我的导师给我的一句话吧:“记住,学好汇编语言最重要的环节永远是上机调试出正确程序!”
共勉! 参考技术A
通用寄存器是寄存器的一种,有些寄存器是专用的.没有指定专门用途的寄存器就是通用寄存器
寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,存器有累加器(ACC)。
通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。
专用寄存器包括程序计数器PC、堆栈指示器SP和标志寄存器FR,它们的作用是固定的,用来存放地址或地址基值
通用寄存器的意思是这个寄存器没有特殊用途,你用它做什么都可以,比如存一个ascII码,存一个数,干什么都行,只要你自己明白你给他赋值的意义就好。宽泛的来说一般程序员可以修改的寄存器多数都属于通用寄存器。
寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。
参考技术B 对于8086的系统:1.寄存器按照功能的不同可分为通用寄存器(AX,BX,CX,DX,SP,BP,SI,DI。其中的前四个寄存器可分别分成AH,AL ;BH,BL;CH,CL;DH,DL的八位寄存器)、指令指针寄存器(IP)、标志寄存器(FLAGS)、段寄存器(CS,DS,ES,SS)。它们的区别和联系体现在它们的功能上,对它们的深入了解和正确运用需要通过编写程序来实现。
2.大致功能如下:
AX,可存放一般数据,而且可作为累加器使用;
BX,可存放一般数据,而且可用来存放数据的指针(偏移地址),常常和DS寄存器连用;
CX,可存放一般数据,而且可用来做计数器,常常将循环次数用它来存放;
DX,可存放一般数据,而且可用来存放乘法运算产生的部分积,或用来存放输入输出的端口地址(指针);
SP,用于寻址一个称为堆栈的存储区,通过它来访问堆栈数据;
BP,可存放一般数据,用来存放访问堆栈段的一个数据区,作为基地址;
SI,可存放一般数据,还可用于串操作中,存放源地址,对一串数据访问;
DI,可存放一般数据,还可用于串操作中,存放目的地址,对一串数据访问;
IP,用于寻址当前需要取出的指令字节,程序员不能对它直接操作;
FLAGS,用于指示微处理器的状态并控制它的操作;
CS,代码段寄存器,代码段是一个存储区域,存放的是CPU要使用的代码,CS存放代码段的段基地址;
DS,数据段寄存器,数据段是包含程序使用的大部分数据的存储区,DS中存放数据段的段基地址;
ES,附加段寄存器,附加段是为某些串操作指令存放目的操作数而附近的一个数据段,ES中存放该数据段的段基地址;
SS,堆栈段寄存器,堆栈段是内存中一个特殊的存储区,用于暂时存放程序运行时所需的数据或地址信息。SS中存放该存储区的段基地址。
基本功能就是这些,要想透彻掌握深层的寄存器功能,必须要编写汇编源程序,可用微软的masm汇编程序进行编译,用dos系统自带的debug命令调试,直到程序正确运行,才能体会其中的奥妙。
最后,还是用我的导师给我的一句话吧:“记住,学好汇编语言最重要的环节永远是上机调试出正确程序!”
共勉!
第二章 寄存器
一、CPU概述
1、一个典型的CPU由运算器、控制器、寄存器等器件组成。
2、内部总线实现CPU内部各个器件之间的联系。
3、外部总线实现CPU和主板上其它器件的联系。
二、通用寄存器
1、8086CPU均为16位可储存两个字节。AX.BX.CX.DX通常用来存放一般性的数据,被称为通用寄存器。
2、为了保证兼容,这四个通用寄存器可以拆分使用。例如AX:可分为AH、AL。
三、字在寄存器中的储存
1、字节:记为byte,一个字节由8个bit组成,可存放8位寄存器。
2、字:记为word,一个字由两个字节组成,分别称为这个字的高位字节与地位字节。
四、几条汇编指令
1、
1) 在mov和add指令中,两个操作对象的位数应一致。
2)运算时超出寄存器时高位省略。(如图1省略)
五.8086表示物理地址的障碍
1.8086寄存器为16位(64kb),外部地址总线位20位(1M).
2.因此8086在内部用两个16位地址通过计算合成可得20位的物理地址
计算合成由CPU内部的地址加法器实现。
3.段的概念
「段」是8086为解决用16位寄存器表示20位的物理地址而引入的一个逻辑上的概念。
可以根据需要,将地址连续、起始物理地址为16倍数的一组内存单元(不超过64KB)当作一个「段」使用。
六、CS与IP
1、CS: 代码段段寄存器,用于存放代码段的「段地址」
2、IP: 指令指针寄存器,用于存放CPU将要读取的指令在代码段中的偏移地址。
3、CS:IP对应的物理地址存放的是CPU将要读取的指令。
4、修改CS和IP的指令jmp
1)同时修改CS、IP的内容:jmp 段地址: 偏移地址
用指令中给出的段地址修改CS,偏移地址修改IP。
2)只修改IP的内容:jmp 某一合法寄存器
以上是关于通用寄存器和专用寄存器有啥区别和联系?的主要内容,如果未能解决你的问题,请参考以下文章