cpu内部8位寄存器作用

cpu内部8位寄存器作用

CPU各寄存器的作用

ebp和esp是32位的SP,BP esp是堆栈指针 ebp是基址指针 ESP与SP的关系就象AX与AL,AH的关系. 32位CPU所含有的寄存器有:

4个数据寄存器(EAX、EBX、ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES、CS、SS、DS、FS和GS) 1个指令指针寄存器(EIP) 1个标志寄存器(EFlags) 寄存器AX和AL通常称为累加器(Accumulator),用累加器进行的操作可能需要更少时间。累加器可用于乘、除、输入/输出等操作,它们的使用频率很高

寄存器BX称为基地址寄存器(Base Register)。它可作为存储器指针来使用

寄存器CX称为计数寄存器(Count Register)。在循环和字符串操作时,要用它来控制循环次数在位操作中,当移多位时,要用CL来指明移位的位数

寄存器DX称为数据寄存器(Data Register)。在进行乘、除运算时,它可作为默认的操作数参与运算,也可用于存放I/O的端口地址。

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

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

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

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

指针寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。 它们主要用于访问堆栈内的存储单元,并且规定:

BP为基指针(Base Pointer)寄存器,用它可直接存取堆栈中的数据

SP为堆栈指针(Stack Pointer)寄存器,用它只可访问栈顶。

CPU内部的段寄存器:

CS——代码段寄存器(Code Segment Register),其值为代码段的段值

DS——数据段寄存器(Data Segment Register),其值为数据段的段值

ES——附加段寄存器(Extra Segment Register),其值为附加数据段的段值

SS——堆栈段寄存器(Stack Segment Register),其值为堆栈段的段值

FS——附加段寄存器(Extra Segment Register),其值为附加数据段的段值

GS——附加段寄存器(Extra Segment Register),其值为附加数据段的段值