寄存器组 寄存器类型

小圈 2024-03-13 221次阅读

本文目录

  1. 程序状态寄存器的每一位是何作用
  2. 寄存器类型
  3. 8086cpu通用寄存器组不包括
  4. 什么是当前工作寄存器
  5. 中断程序为什么选择寄存器工作组
  6. 单片机有几个通用寄存器

程序状态寄存器的每一位是何作用

PSW是一个8位寄存器,用来存放指令执行的有关状态信息。PSW中各位的状态信息一般是在指令执行过程中形成的,也可以根据需要由用户采用传送指令加以改变。

a。P(PSW.0):奇偶标志位,用于表示累加器A中二进制数值为1奇偶性。

b。F1、F0(PSW.1、PSW.5):用户标志位,作为用户自行定义的一个状态标志

c。OV(PSW.2)溢出标志位,用于指示算数运算中是否有溢出

d。RS1、RS0(PSW.4、PSW.3):工作寄存器选择控制位,用户通过软件选择CPU当前工作的寄存器组。

e。AC(PSW.6):辅助进位标志位,当进行加法或减法运算并产生由第四位向高四位进位或借位时,AC被硬件置1,否则清零

f。CY(PSW.7):进位标志位,用于表示加法或减法运算时最高位是否有进位或借位,如有则被置1。在进行位操作时,CY还可作为位累加器使用,相当于累加器A。

寄存器类型

寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。

一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。

按照功能的不同,可将寄存器分为基本寄存器和移位寄存器两大类。

1.基本寄存器只能并行送入数据,也只能并行输出。

2.移位寄存器中的数据可以在移位脉冲作用下依次逐位右移或左移,数据既可以并行输入、并行输出,也可以串行输入、串行输出,还可以并行输入、串行输出,或串行输入、并行输出,十分灵活,用途也很广。

8086cpu通用寄存器组不包括

8086CPU通用寄存器组包括AX、BX、CX、DX这四个寄存器,每个寄存器都可以分成两个8位寄存器AH、AL、BH、BL、CH、CL、DH、DL。其中AH、BH、CH、DH为高位寄存器,AL、BL、CL、DL为低位寄存器。通用寄存器组主要用于存储临时数据、计算结果、地址偏移量等。但是通用寄存器组不包括指令指针寄存器IP和标志寄存器FLAGS,IP用于存储下一条要执行的指令地址,FLAGS用于存储程序运行状态标志,如进位标志CF、零标志ZF等。

IP和FLAGS是不可直接访问的,需要通过特定的指令来进行读写操作。

什么是当前工作寄存器

计算机内部通常设置工作寄存器组。这样,运算的结果可以放在寄存器中而不必每次都放到存储器里。寄存器的主要作用是用来暂时存放参与运算的数据和运算结果,具有接收数据、存放数据和输出数据的功能。提高机器的工作速度,当前工作寄存器应该是计算机正在使用的寄存器。

中断程序为什么选择寄存器工作组

简单应用是不需要选择工作寄存器组的,默认使用第一个寄存器组! 如果程序中有多个中断源,可以考虑使用多个寄存器组,可以减少系统在中断时的开销! 使用多个寄存器组,一定要处理好寄存器组的切换! 其实很简单,但不注意就会出问题! 如果这方面比较生疏,而又对系统要求不是很苛刻的,使用默认寄存器组就足够了!

单片机有几个通用寄存器

51单片机共有四组通用寄存器(r0~r7),默认的为第0组,地址为00h~07h

第一组为08h~0fh,第二组为10h~17h,第三组为18h~1fh

如果你的中断中存在调用r0~r7寄存器的命令,则会造成原数据的丢失,所以进入中断后需要将r0~r7、a等寄存器的内容入栈保存,这样不仅造成效率变慢,还浪费了堆栈的资源。

中断函数用了usingn,进入中断后就用其它组的寄存器,中断函数中就不需要入栈、出栈等操作,即提高了效率,也节省了栈资源



发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。