CPU的内部寄存器中是重要的数据存储资源,是硬件资源中的一个可以直接在汇编语言的程序员使用。
由于寄存器存取速度快于内存中,所以当一个程序用汇编语言编写,以尽可能充分利用寄存器存储功能。
寄存器通常被用于存储程序的中间结果,以便快速地提供以下指令的操作数,因此避免了存储在存储器中的中间结果,然后读取存储器操作。在高级语言(如:C / C ++语言),也有定义的寄存器类型,这是提高的一个可行的解决方案的寄存器的使用的变量。
另外,由于寄存器数量和容量是有限的,不是所有的中间结果被存储在寄存器中,所以要注册的适当的调度。根据指令,如何安排适当的寄存器,但小心地避免了很好的工作太多操作数转换操作。
与“寄存器分配策略”进行详细的“编译原理”中所述。
1,16位的寄存器设置
16位CPU寄存器包含有(见图2.1 16寄存器部分):
4个数据寄存器(AX,BX,CX和DX)
2变异指数和指针寄存器(SI和DI)2指针寄存器(SP和BP)
4段寄存器(ES,CS,SS和DS)
1指令指针寄存器(IP)1标志寄存器(旗)的
2,32位的寄存器设置
第32位CPU中除包含所有以前的CPU寄存器和通用寄存器,指令指针和标志寄存器从16到32扩大,而且还增加了两个16段寄存器:FS和GS。载有
第32位CPU寄存器(见图2.1寄存器):
4个数据寄存器(EAX,EBX,ECX和EDX)
2变异位点和指针寄存器(ESI和EDI)2指针寄存器(ESP和EBP)
6段寄存器(ES,CS,SS,DS,FS和GS)
1个指令指针寄存器(EIP)1标志寄存器(EFLAGS),所以它是不称为存储器