寄存器的作用有哪些?
寄存器用途
1.可将寄存器内的数据执行算术及逻辑运算;
2.存于寄存器内的地址可用来指向内存的某个位置,即寻址;
3.可以用来读写数据到电脑的周边设备。
ax 累加器,得名原因是最初常使用add ax,n这样的指令
cx 计数器,得名原因是最常使用cx的值作为重复操作的次数
bx 常用作地址寄存器,如mov ax,[bx],把bx所指地址中的数取到ax中去
dx 通用寄存器
都是16位寄存器
e前缀是他们的32位版本
他们的地位都是平等的,也不仅限于规定的作用,很多时候可以通用,爱用哪个用哪个。
今天看了几个关于cpu寄存器一些帖子,感觉上他们所说的好象没有说明cpu寄存器的作用。我从我现在所了解的知识,与大家讲一讲,共同学习一下吧。先讲cpu的一些分类。
第一,从cpu的种类来分寄存器来分的话。有motorola 68x00、intel ia-32、sun sparc、vax和ibm-370等,不同种类的cpu,都有与其对应的寄存方法与方式。对我们来说,一般都x86的,即我常说的英特尔公司与amd公司生产的cpu,这可能占世界上个人pc的90%多吧。
第二,从这一条起,我们所讲的寄存器都是以x86为基础的,那么这种cpu内,寄存器可分为以下几种。其一,是eax、ebx、ecx、edx等通用寄存器。其二呢,是cs、ss、es等段寄存器。其三呢,是eip,也称为指令指针。其四呢,eflags寄存器,俗称为标志寄存器。其五,浮点单元,这里面之所以只浮点单元,是因为在它里面还有一些小的寄存分类,主要是数学上的浮点上的计算。其六呢,mmx指令使用的8个64位寄存器。其七呢,单指令、多数据操作(simd,single-instruction,multiple-data)使用的8个128位xmm寄存器。
以上是cpu的一些分类的常用知识,其中,对我们大多数人来讲,需要了解与知道的是x86这类的,也就是我们所说的ia-32系列cpu。也许有人会说amd的cpu,这不用担心,它是兼容intel的,这不用我们担心的事情,那么我们主要了解的是ia-32这一类的结构,这些方面需要我们花一些时间去了解。如果我们只是需要一般的编程的话,我们了解上面这些就可以了。因为在c/c++、java、perl等这些编程的话,寄存器的使用一般不需要。但是如果进行汇编语言编程的话,那我们还需要对更加深入的了解。好了,下面我开始讲解一些与汇编语言编程有关寄存器的作用与结构粗陋地讲解一些,不过先要说明一些,我对这些不是很精通,我也只是一般的了解,如果大家深入的学习的话,我介绍二本书给大家。不过很难买到,只要大家用心去买,还是可以买到的,第一本是《intel汇编语言程序设计》,我买的是第四版。第二本是intel微系统结构与汇编语言,具体的名字我记不清,是一本厚的书。它是第一本的基础,但是它显得有点旧,但是它286开始介绍的。很值得去看看。如果说仅仅用一个帖子把寄存器的作用与使用说明,我则只能说我不行,但是从它的一般的使用与了解的话,我想也只是几句话而已。
从结构上看cpu的寄存器,它实际上是cpu的一部分。这包括后来,也是现在所流行的64位双核cpu,都是如此。从内存的使用角度上来讲的话,cpu的寄存器,它是内存的一部分,但是从快速的角度上来,寄存器它似乎不存在着地址的问题,因为是它是cpu的操作的最近的一部分,也是cpu执行时第一个要访问的第一个地方,但是它作用是存储用的。只是存储的内容不一定是指令,还有可能是地址,或者说是一些标志。这都是有可能的。
说上二句所谓的题外话,cpu的寄存器,从最基本上来讲,它只是一个个容器而已。那么依据它的分类,可分为通用寄存器,从通用上来讲,它所存储的东西,只要它的容积所容许的话,什么都是可以存储的,而段寄存器呢,它所存储的只能是地址,它的作用是从寻址上可以体现出来,而标志寄存器呢,那么所存储的是与cpu的每一个执行的指令有关。是关系到cpu每一个指令的执行相关内容与特殊的关联,即cpu所执行的指令是否违规,它的指令是否有进位,它的指令是否有溢出,都是在标志寄存器中能表现与表达出来。所有这些细则,只有通过学习后才能知道的。
好了,我只能说这些了,如果有说错的地方,还高人指出,加以指正与批评,谢谢。
专用寄存器的作用
16位cpu内部有一个16位的标志寄存器,它包含9个标志位。这些标志位主要用来反映处理器的状态和运算结果的某些特征。各标志位在标志寄存器内的分布如图2.2所示。
1514131211109876543210
ofdfiftfsfzf af pf cf
31…17161514131211109876543210
……vmrf ntioplofdfiftfsfzf afpfcf
图2.2 16位/32位标志寄存器的示意图
上面9个标志位可分为二组:运算结果标志位和状态控制标志位。前者受算术运算和逻辑运算结果的影响,后者受一些控制指令执行的影响。
更详细的内容标志位的说明。
有些指令的执行会改变标志位,不同的指令会影响不同的标志位,有些指令的执行不改变任何标志位,有些指令的执行会受标志位的影响,也有指令的执行不受其影响。
程序员要想熟练运用这些标志位,就必须掌握每个标志位的含义、每条指令的执行条件和执行结果对标志位的作用。
注意:虽然知道每个标志位在标志寄存器内的具体位置是有好处的,但通常情况下,没有这个必要。在使用第5.2.9节中的“条件转移指令”时,系统会自动引用相应标志位的值来决定是否需要“转移”的,所以,不必过分强调标志位在标志寄存器内的具体位置。
云传物联浮标水质在线监测科多参数集成可定制
3D打印为企业转型升级提供强大助力
华为p10闪存门分析:对三星来说是机会 国产手机的悲哀
VLS-128(128线激光雷达):为更高级别的自动驾驶而生
中国联通与华为,正式启动在物联网终端领域的战略合作
寄存器的作用有哪些?
巧判音响谐振频率
穿刺型无线三相电量采集模块说明书
索尼为欧洲地区Xperia 1/5用户推送Android 10系统升级
全球半导体行业格局与演变趋势
新型多参数电子皮肤可同步感知多种触觉信号
2023 PCB行业概览:产品放量在即,PCB应用遍地开花
Arm 扩展 Cortex-M 产品组合,将人工智能引入超小型端点设备
字节很会面试,追着项目技术拷打
这些性能突出、超高性价的蓝牙耳机你值得拥有
Informatica将无服务器计算带到数据集成云
交流电路的分析计算
全球3G市场有80%的用户使用CDMA2000技术
Molex跨界创新打造新型超越连接器的解决方案
如何使电池出现一个会动的充电效果