UltraDebug

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: A C D R G Y M Z X S P
公益项目,接受捐赠
查看: 1342|回复: 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 位的通用寄存器EAXEBXECXEDX 。对低16 位数据的存取,不会影响高16 位的数据。这些

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

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

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

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

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

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

变址寄存器

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

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

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

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

指针寄存器

32 位CPU 有2个32位通用寄存器EBPESP

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

寄存器EBPESPBPSP 称为指针寄存器(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, 2025-6-18 08:04 , Processed in 0.033272 second(s), 11 queries , Redis On.

Powered by Discuz X3.4

© 2001-2023 Discuz! Team.

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