2024年9月80X86微处理器有哪些通用寄存器,各有什么用途?什么是通用寄存器

 更新时间:2024-09-21 09:11:47

  ⑴X微处理器有哪些通用寄存器,各有什么用途?什么是通用寄存器

  ⑵X微处理器有哪些通用寄存器,各有什么用途

  ⑶以下是X微处理器的通用寄存器的分类及用途:

  ⑷AX,BX,CX,DX称作为数据寄存器:

  ⑸AX(Aumulator):累加寄存器,也称之为累加器;BX(Base):基地址寄存器;cX(Count):计数器寄存器;DX(Data):数据寄存器。

  ⑹SP和BP又称作为指针寄存器:

  ⑺SP(StackPointer):堆栈指针寄存器;BP(BasePointer):基指针寄存器。

  ⑻SI和DI又称作为变址寄存器:

  ⑼Sl(Sourcelndex):源变址寄存器;Dl(DestinationIndex):目的变址寄存器。

  ⑽把问题说清楚啊,是单片机吗?反正通用寄存器就是你编程序时可以用来存你的数据的寄存器。和通用寄存器想对的是特殊寄存器(SFR这个一般是被一些硬件占用的寄存器空间,你不能用来存放一般的数据

  ⑾CPU的通用寄存器分为哪些

  ⑿寄存器是CPU内部重要的数据存储资源,是汇编程序员能直接使用的硬件资源之一。由于寄存器的存取速度比内存快,所以,在用汇编语言编写程序时,要尽可能充分利用寄存器的存储功能。寄存器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结果存入内存,再读取内存的操作。在高级语言(如:C/C++语言)中,也有定义变量为寄存器类型的,这就是提高寄存器利用率的一种可行的方法。寄存器的个数和容量都有限,不可能把所有中间结果都存储在寄存器中,所以,要对寄存器进行适当的调度。

  ⒀根据指令的要求,如何安排适当的寄存器,避免操作数过多的传送操作是一项细致而又周密的工作。位寄存器组,位CPU所含有的寄存器有(见图.中位寄存器部分):个数据寄存器(AX、BX、CX和DX);个变址和指针寄存器(SI和DI)个指针寄存器(SP和BP);个段寄存器(ES、CS、SS和DS);个指令指针寄存器(IP)个标志寄存器(Flags);位寄存器组,位CPU除了包含了先前CPU的所有寄存器,并把通用寄存器、指令指针和标志寄存器从位扩充成位之外,还增加了个位的段寄存器:FS和GS。位CPU所含有的寄存器有,个数据寄存器(EAX、EBX、ECX和EDX);个变址和指针寄存器(ESI和EDI)个指针寄存器(ESP和EBP);个段寄存器(ES、CS、SS、DS、FS和GS);个指令指针寄存器(EIP)个标志寄存器(EFlags)。

  ⒁通用寄存器和专用寄存器有什么区别和联系

  ⒂对于的系统:.寄存器按照功能的不同可分为通用寄存器(AX,BX,CX,DX,SP,BP,SI,DI。其中的前四个寄存器可分别分成AH,AL;BH,BL;CH,CL;DH,DL的八位寄存器、指令指针寄存器(IP、标志寄存器(FLAGS、段寄存器(CS,DS,ES,SS。它们的区别和联系体现在它们的功能上,对它们的深入了解和正确运用需要通过编写程序来实现。.大致功能如下:AX,可存放一般数据,而且可作为累加器使用;BX,可存放一般数据,而且可用来存放数据的指针(偏移地址,常常和DS寄存器连用;CX,可存放一般数据,而且可用来做计数器,常常将循环次数用它来存放;DX,可存放一般数据,而且可用来存放乘法运算产生的部分积,或用来存放输入输出的端口地址(指针;SP,用于寻址一个称为堆栈的存储区,通过它来访问堆栈数据;BP,可存放一般数据,用来存放访问堆栈段的一个数据区,作为基地址;SI,可存放一般数据,还可用于串操作中,存放源地址,对一串数据访问;DI,可存放一般数据,还可用于串操作中,存放目的地址,对一串数据访问;IP,用于寻址当前需要取出的指令字节,程序员不能对它直接操作;FLAGS,用于指示微处理器的状态并控制它的操作;CS,代码段寄存器,代码段是一个存储区域,存放的是CPU要使用的代码,CS存放代码段的段基地址;DS,数据段寄存器,数据段是包含程序使用的大部分数据的存储区,DS中存放数据段的段基地址;ES,附加段寄存器,附加段是为某些串操作指令存放目的操作数而附近的一个数据段,ES中存放该数据段的段基地址;SS,堆栈段寄存器,堆栈段是内存中一个特殊的存储区,用于暂时存放程序运行时所需的数据或地址信息。SS中存放该存储区的段基地址。基本功能就是这些,要想透彻掌握深层的寄存器功能,必须要编写汇编源程序,可用微软的masm汇编程序进行编译,用dos系统自带的debug命令调试,直到程序正确运行,才能体会其中的奥妙。最后,还是用我的导师给我的一句话吧:“记住,学好汇编语言最重要的环节永远是上机调试出正确程序!”共勉!

  ⒃处理机包含了一组位寄存器,其中有个是任何时候都可存访的“通用寄存器”。这些寄存器被称之为:r、r、r、r、r、r、r以及r。UNIX使用这些寄存器的惯例是:*r、r在表达式求值时用作临时累加器;在过程返回时存放返回值;在过程调用的某些情况下可用来传递实参。*r、r和r在过程执行时可用作局部变量。在过程调用入口处存储这些寄存器的值,在退出过程时则恢复这些寄存器值。*r用作过程激活记录动态链的链首指针,该动态链存放在当前栈上。r被称为“环境指针”。最后两个通用寄存器具有专门的意义和作用:*r(也称为sp)用作栈指针。PDP/处理机有两个寄存器,分别在核心态和用户态下用作sp。而其他通用寄存器则没有这种双份使用方式。*r(也称为pc)用作程序计数器,亦即指令地址寄存器。

  ⒄eax,ebx,ecx,edx,esi,edi,ebp,esp等都是X汇编语言中CPU上的通用寄存器的名称,是位的寄存器。如果用C语言来解释,可以把这些寄存器当作变量看待。比方说:addeax,-;//可以认为是给变量eax加上-这样的一个值。这些位寄存器有多种用途,但每一个都有各自的特别之处。EAX:累加寄存器,相对于其他寄存器,在运算方面比较常用。EBX:基地址寄存器,作为内存偏移指针使用。ECX:计数器,用于特定的技术。EDX:作为EAX的溢出寄存器,(除法产生的余数。EIP:存储CPU下次所执行的指令地址(存放指令偏移地址。ESP:指针的寄存器,用于堆栈操作。被形象地称为栈顶指针,堆栈的顶部是地址小的区域,压入堆栈的数据越多,ESP也就越来越小。在位平台上,ESP每次减少字节。EBP:基址指针,指栈的栈底指针。它最经常被用作高级语言函数调用的“框架指针“(framepointer).在破解的时候,经常可以看见一个标准的函数起始代码:pushebp;保存当前ebpmovebp,esp;EBP设为当前堆栈指针subesp,xxx;预留xxx字节给函数临时变量....这样一来,EBP构成了该函数的一个框架,在EBP上方分别是原来的EBP,返回地址和参数.EBP下方则是临时变量.函数返回时作movesp,ebp/popebp/ret即可.ESI:在内存操作指令中作为“源地址指针”使用。EDI:在内存操作指令中作为“目的地址”使用。MOV:将源操作数送至目的操作数。PUSH:入栈指令,将源操作数指定的字数据压入堆栈栈顶。POP:出栈操作,将源操作数指定的字数据压入堆栈栈顶。JMP:跳转至指定地址执行。LEA:取有效地址(偏移地址)至寄存器。CALL:将程序的执行交给其他代码段。RET:子程序的返回指令。

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

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

  ⒇位CPU有个位通用寄存器EBP和ESP。其低位对应先前CPU中的SBP和SP,对低位数据的存取,不影响高位的数据。

  ⒈段寄存器是根据内存分段的管理模式而设置的。内存单元的物理地址由段寄存器的值和一个偏移量组合而成的,这样可用两个较少位数的值组合成一个可访问较大物理空间的内存地址。

  ⒉位CPU把指令指针扩展到位,并记作EIP,EIP的低位与先前CPU中的IP作用相同。指令指针EIP、IP(InstructionPointer)是存放下次将要执行的指令在代码段的偏移量。

  ⒊寄存器是CPU内部重要的数据存储资源,用来暂存数据和地址,是汇编程序员能直接使用的硬件资源之一。由于寄存器的存取速度比内存快,所以,在用汇编语言编写程序时,要尽可能充分利用寄存器的存储功能。

  ⒋寄存器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结果存入内存,再读取内存的操作。在高级语言(如:C/C++语言)中,也有定义变量为寄存器类型的,这就是提高寄存器利用率的一种可行的方法。

  ⒌另外,由于寄存器的个数和容量都有限,不可能把所有中间结果都存储在寄存器中,所以,要对寄存器进行适当的调度。根据指令的要求,如何安排适当的寄存器,避免操作数过多的传送操作是一项细致而又周密的工作。

  ⒍参考资料来源:百度百科-通用寄存器

  ⒎CPU中有哪些主要寄存器简述这些寄存器的功能

  ⒏通用寄存器组包括AX、BX、CX、DX个位寄存器,用以存放位数据或地址。也可用作位寄存器。用作位寄存器时分别记为AH、AL、BH、BL、CH、CL、DH、DL。

  ⒐采用分段技术来解决。将MB的存储空间分成若干逻辑段,每段最长KB,这些逻辑段在整个存储空间中可浮动。

  ⒑这组寄存器存放的内容是某一段内地址偏移量,用来形成操作数地址,主要在堆栈操作和变址运算中使用。

  ⒒用来存放将要执行的下一条指令在现行代码段中的偏移地址。程序运行中,它由BIU自动修改,使IP始终指向下一条将要执行的指令的地址,因此它是用来控制指令序列的执行流程的,是一个重要的寄存器。

  ⒓寄存器应具有接收数据、存放数据和输出数据的功能,它由触发器和门电路组成。只有得到“存入脉冲”(又称“存入指令”、“写入指令”时,寄存器才能接收数据;在得到“读出”指令时,寄存器才将数据输出。

  ⒔寄存器存放数码的方式有并行和串行两种。并行方式是数码从各对应位输入端同时输入到寄存器中;串行方式是数码从一个输入端逐位输入到寄存器中。

您可能感兴趣的文章:

相关文章