UltraDebug

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: A C D R G Y M Z X S P
公益项目,接受捐赠
查看: 2176|回复: 0
收起左侧

[原创] 《汇编》CPU常见寄存器介绍

[复制链接]
yuwenming

主题

0

回帖

UD

新手上路

UID
37
积分
22
注册时间
2022-5-15
最后登录
1970-1-1
2022-5-20 15:37:11 | 显示全部楼层 |阅读模式

32 位CPU 所含有的寄存器有:

4 个数据寄存器(EAX 、EBX 、ECX 和EDX) 2 个变址和指针寄存器(ESI 和 EDI) 2 个指针寄存器(ESP 和EBP) 6 个段寄存器(ES 、CS 、SS 、DS 、FS 和GS) 1 个指令指针寄存器(EIP) 1 个标志寄存器(EFlags)

数据寄存器

数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。

32 位CPU 有4 个32 位的通用寄存器EAX 、EBX 、ECX 和EDX 。对低16 位数据的存取,不会影响高16 位的数据。这些

低16 位寄存 器分别命名为:AX 、BX 、CX 和DX ,它和先前的CPU 中的寄存器相一致。

4 个16 位寄存器又可分割成8 个独立的8 位寄存器(AX :AH-AL 、BX :BH-BL 、CX :CH-CL 、DX :DH-DL) ,每个寄存器都有自己的名称,可独立存取。

程序员可利用数据寄存器的这种“ 可分可合” 的特性,灵活地处理字/ 字 节的信息。

寄存器AX 和AL 通常称为累加器(Accumulator) ,用累加器进行的操作可能需要更少时间。

累加器可用于乘、除、输入/ 输出等 操作,它们的使用频率很高;寄存器BX 称为基地址寄存器(Base Register) 。它可作为存储器指针来使用;寄存器 CX 称为计数寄存器(Count Register) 。在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移多位时,要用CL 来指明 移位的位数;寄存器DX 称为数据寄存器(Data Register) 。在进行乘、除运算时,它可作为默认的操作数参与运算,也可 用于存放I/O 的端口地址。

在16 位CPU 中,AX 、BX 、CX 和DX 不能作为基址和变址寄存器来存放存储单元的地址,但在32 位CPU 中,其32位寄存器 EAX 、EBX 、ECX 和EDX 不仅可传送数据、暂存数据保存算术逻辑运算结果,而且也可作为指针寄存器,所以,这些32 位寄存器更具有通用性。

变址寄存器

32 位CPU 有2 个32 位通用寄存器ESI 和EDI 。其低16 位对应先前CPU 中的SI 和DI ,对低16 位数据的存取,不影响高16 位的数据。

寄存器ESI 、EDI 、SI 和DI 称为变址寄存器(Index Register) ,它们主要用于存放存储单元在段内的偏移量,用它们可实 现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。

变址寄存器不可分割成8 位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。

它们可作一般的存储器指针使用。在字符串操作指令的执行过程中,对它们有特定的要求,而且还具有特殊的功能。

指针寄存器

32 位CPU 有2个32位通用寄存器EBP和ESP 。

其低16 位对应先前CPU 中的SBP 和SP ,对低16 位数据的存取,不影响高16位的数据。

寄存器EBP 、ESP 、BP 和SP 称为指针寄存器(Pointer Register) ,主要用于存放堆栈内存储单元的偏移量,用它们可实 现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。

指针寄存器不可分割成8 位寄存器。

作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。

它们主要用于访问堆栈内的存储单元,并且规定: BP 为基指针(Base Pointer) 寄存器,用它可

还有更多的精彩内容,作者设置为付费后可见
UltraDebug免责声明
✅以上内容均来自网友转发或原创,如存在侵权请发送到站方邮件9003554@qq.com处理。
✅The above content is forwarded or original by netizens. If there is infringement, please send the email to the destination 9003554@qq.com handle.
回复 打印

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|站点地图|UltraDebug ( 滇ICP备2022002049号-2 滇公网安备 53032102000034号)

GMT+8, 2026-10-9 17:27 , Processed in 0.034697 second(s), 12 queries , Redis On.

Powered by Discuz X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表