通用寄存器都有哪些?

author author     2023-05-05     386

关键词:

各有什么作用?

1、数据寄存器

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

2、变址寄存器

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

3、指针寄存器

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

4、段寄存器

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

5、指令指针寄存器

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

扩展资料

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

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

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

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

参考技术A 8086有14个16位寄存器:8个通用寄存器、1个指令指针寄存器、1个标志寄存器和4个段寄存器。它们都有名称,编程时使用其名称代表其保存的内容。

* AX――累加器(Accumulator),使用频度最高
* BX――基址寄存器(Base Register),常存放存储器地址
* CX――计数器(Count Register),常作为计数器
* DX――数据寄存器(Data Register),存放数据

8086的4个16位数据寄存器:AX、BX、CX、DX,都还可以分为高(H:High)、低(L:low)两个独立的8位寄存器,分别取名为AH / AL、BH / BL、CH / CL、DH / DL;对其中某8位的操作,并不影响另外对应8位的数据。
所以,我们说8086有8个通用的16位寄存器,还有8个通用的8位寄存器。

*
SI――源变址寄存器(Source Index),常保存存储单元地址
*
DI――目的变址寄存器(Destination Index),常保存存储单元地址
*
BP――基址指针寄存器(Base Pointer),表示堆栈区域中的基地址
*
SP――堆栈指针寄存器(Stack Pointer),指示堆栈区域的栈顶地址
*
IP――指令指针寄存器(Instruction Pointer),指示要执行指令所在存储单元的地址。IP寄存器是一个专用寄存器。

cpu中都有哪些寄存器资源,他们的初始值分别是多少

参考技术A寄存器是CPU内部重要的数据存储资源,是汇编程序员能直接使用的硬件资源之一。由于寄存器的存取速度比内存快,所以,在用汇编语言编写程序时,要尽可能充分利用寄存器的存储功能。寄存器一般用来保存程序的... 查看详情

80x86的指令都有哪些寻址方式

参考技术A直接寻址间接寻址寄存器寻址寄存器间接寻址四种本回答被提问者和网友采纳 参考技术B我也不熟悉这地方 查看详情

stm32l452ccu6单片机都有哪些外设接口?

...行音频接口SAI×1-集成电路间接口I²C×4,兼容SMBUS/PMBUS-通用同步/异步收发接口USART×3,兼容ISO7816、LIN总线、红外调制-通用异步收发接口UART×1,兼容LIN总线、红外调制-低功耗通用异步收发接口LPUART×1,可用于唤醒-串行外设接... 查看详情

8086cpu复位后,内容不为0的寄存器都有哪些?系统的初始地址是啥?

参考技术A8086CPU复位后,(CS)=FFFFH,其余各寄存器的状态均为0。要看得看你的复位是用什么实现的。如果是硬件实现的话,第一条cpu的指令的起始地址在rom,如果是软件实现的话,你的软件复位是针对cpu还是整个系统,如果是针... 查看详情

static和volatile都有哪些用途用途。

...道的场合,它们的值可由程序以外的过程控制,比如硬件寄存器。参考技术Astatic是静态获取,volatile是从列表中获取 查看详情

arm寄存器

ARM寄存器一、ARM工作状态下的寄存器组织ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个位状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可以访问的,取决ARM处理器的工作状态及具体的运行模式... 查看详情

arm寄存器

ARM处理器拥有37个寄存器。这些寄存器按部分重叠组方式加以排列。每个处理器模式都有一个不同的寄存器组。编组的寄存器为处理处理器异常和特权操作提供了快速的上下文切换。提供了下列寄存器:三十个32位通用寄存器、... 查看详情

X86 操作码将 xmm 寄存器移动到通用寄存器

】X86操作码将xmm寄存器移动到通用寄存器【英文标题】:X86opcodestomovexmmregistertogeneralregisters【发布时间】:2016-06-1004:47:32【问题描述】:将xmm0寄存器移动到eax和edx的短x86指令序列是什么?【问题讨论】:除非必要,否则不要在... 查看详情

8086/8088的指令都有哪些寻址方式

...参加操作的数据。1.立即操作数:它在指令中直接给出。2.寄存器操作数:它被放到寄存器中。3.存储器操作数:当然在存储器也就是内存中。4.i/o操作数:它在你给出的i/o端口中。2)转移地址操作数:在指令当中不是参加运算或被处理... 查看详情

使用 DeviceIoControl 都有哪些好的策略?

...时,我正在寻找一些指导,因为我知道其接受指针参数的通用方面并不总是很容易在C#中表达。以下是两个示例和 查看详情

arm内核sp,lr,pc寄存器

  深入理解ARM的这三个寄存器,对编程以及操作系统的移植都有很大的裨益。  1、堆栈指针r13(SP):每一种异常模式都有其自己独立的r13,它通常指向异常模式所专用的堆栈,也就是说五种异常模式、非异常模式... 查看详情

接口协议都有哪些

...的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。WebService技术,能使得运行在不同机器上的不同... 查看详情

mfc都有哪些基本类??分别代表啥意思

...越多越好MFC类目录及头文件类描述头文件CAnimateCtrl自动化通用控件afxcmn.hCArchiveafx.hCArchiveExceptionafx.hCArrayafxtempl.hCAsyncMonikerFile在ActiveX控件中提供对异步标记的支持afxole.hCAsyncScoket封装WindowsSocketsAPI,参看CSocketafxsock.hCBitmapafxwin.hCBitm... 查看详情

arm寄存器及异常处理

3.1ARM内部寄存器ARM920T总共有37个寄存器,其中31通用32位寄存器和6个状态寄存器,但不能在同一时刻对所有的寄存器可见。处理器状态和运行模式决定了哪些寄存器对程序员可见 3.1.1ARM状态时内部寄存器在ARM状态,16个通用寄... 查看详情

在 AVR 中断中保留 sreg

...:2012-01-1720:48:44【问题描述】:在AVR微控制器中保存状态寄存器sreg的机制是什么?RETI表示这些位不在堆栈上。通用寄存器之一是否也是sreg或类似的东西?【问题讨论】:状态寄存器不是通用寄存器。它驻留在I/O寄存器文件中,... 查看详情

s5pv210内存映射

  在ARM中37个通用寄存器和51中的寄存器不一样,并不是占用一部分RAM的地址。这些通用寄存器的地址我们并不知道,但是内核可以找到它们,它们是属于核内部的资源。  在芯片内部还集成了各种外设的特殊功能... 查看详情

通用寄存器起啥作用?

通用寄存器通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。除此之外,它们还各自具有一些特殊功能。参考技术A通用寄存器属于运算器,控制器中的程序计数器pc会对每部程序自动加1,而通用寄... 查看详情

常见的51单片机头文件都有哪些?(reg52除外)

...认为8051窜口。intrins.h常用来进行位移运算。reg51.h是专用寄存器文件,8031,8051都为reg它包括8051的SFR及其位定义,一般系统都必须包括这个文件。absacc.h绝对地址文件。该文件是只定义了几个宏,以确定各存储空间的绝对地址。... 查看详情