32位处理器内寄存器简介

来源:互联网 发布:网络编程培训班 编辑:程序博客网 时间:2024/04/29 19:58

摘要:在32位CPU中,还有各种各样的寄存器。一些寄存器是通用的,一些寄存器是专用的。一些指令如add、loop,如果后面没有完整的寄存器操作数,说明它们使用了隐含的操作数,这样的话,我们需要对每个寄存器的常规用途比较了解。本文,主要是一个汇总和浅要介绍,帮你理清32位寄存器的主要用途。


32位cpu含有的寄存器有

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

1.数据寄存器


特点:可分割存取eax——ax——al and ah
ax and al are for accumulator
bx is base register, which is for pointer for memory
cx is count register, which is for loop count
ds is data register, which is for default opt data and IO address.
在16位cpu中,ax~dx不能用作基址和变址寄存器来存放存储单元的地址,但是32b cpu中,eax~edx不仅可以用于逻辑运算,也可以作为指针寄存器

2.变址寄存器


作用:主要用于存放存储单元的段内偏移量,他们不可以分割成8位寄存器,但是可以进行逻辑运算。他们可以作为一般的存储器指针使用,但是在字符串操作指令执行
的过程中,对他们有特定的要求,所以具有特殊的功能。

3.指针寄存器


ebp、esp、bp、sp用于存放堆栈存储单元的偏移量,不可以分割成八位寄存器,可以存储逻辑运算的操作数和结果。规定:
bp是基指针寄存器,可直接存取堆栈中的数据
sp是堆栈指针寄存器,用它只可以访问栈顶。

4.段寄存器


注意:fs和gs都是附加的数据段寄存器。
0 0