CPU中的专用寄存器.PPT

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CPU中的专用寄存器

累加器Acc 为8位寄存器,简称为A。字节地址:0E0H 位地址:0E0H~0E7H。用于存放操作数或运算的中间结果。它通过暂存器TMP2与ALU相,为ALU提供一个操作数。A是CPU中使用最频繁的寄存器。 例:MOV A,#6 ;A 6 ADD A,#7 ;A (A)+7 结果:(A)=13 通用寄存器B B是一个专为乘法和除法运算设置的8位寄存器,一般与累加器A配合使用。字节地址:F0H 位地址:F0H~F7H。B在乘法或除法前,用来存放乘数或除数,在乘法或除法完成后用来存放乘积的高8位或除数的余数。对于其它指出令,寄存器B可用来存中间结果。 例: MOV A,#65H ;A 65H MOV B,#34H ;B 34H MUL AB ;BA A X B=65H X 34H 结果(A)=84H (B)=14H 程序计数器PC PC是一个16位的寄存器,具有自动加1功能,用来存放下一条要执行的指令在程序存储器中地址,以保证程序按人们编写的顺序执行。编码范围:0000H~FFFFH。 当要执行一段程序时,必须预先按指令的执行顺序把程序放到ROM中,然后从第一条指令开始,取出一条执行一条,直到程序执行完毕。如何保证这一顺序呢?这就必须要有一个具有自动加1功能的寄存器来保存当前要取出的地址,这就是PC。 在程序开始执行之前,先将程序的起始地址(即程序的第一条指令的地址)送入PC,CPU把PC的值作为地址,通过地址总线送入存储器,取出程序的第一条指令。每取出一个字节PC自动加1。所以有人认为PC是CPU的“向导”。 PC在物理结构上是独立的,不属于SFR区,无字节地址和位地址,但仍是具有专用功能的寄存器,所以有人认为片内SFR有22个。 堆栈指针SP 是一个8位的寄存器,用于存放堆栈的栈顶地址,即指出栈顶在内部ROM中的位置。字节地址:81H,无位地址。 堆栈:是一种按“先进后出”或“后进先出”规律存放数据的片内RAM区域。它的一端是固定的,称为栈底,另一端是浮动的,称为栈顶。 设置与操作:原则上,可把堆栈区安排在片内RAM的低128B的任何区域。但习惯上,CPU工作时至少有一组工作寄存器,所以8051复位后,SP初值为07H,当第一个数进栈时,SP加一指向08H单元。为了合理使用内部RAM,堆栈一般不设在工作寄存器区和位寻址区,通常设在内部RAM30H~7FH地址空间内,即设在便签区。可用数据传送指令给SP赋初值进行设置。如:MOV SP,#70H 堆栈有压栈和弹栈两种操作,分别用指令PUSH和POP完成。 例:MOV A,#35H ;A 35H PUSH A ;SP (SP)+1,(SP) A 作用:堆栈是为子程序调用和中断操作而设立的,其具体功能为保护断点和保护现场。此外,利用堆栈还可方便地进行数据交换(堆栈的妙用见备注)。 数据指针DPTR DPTR是个16位的寄存器,也可分为两个独立的8位寄存器DPH(高8位)和DPL(低8位),字节地址分别为83H和82H,无位地址。 DPTR通常在访问外部数据存储器时作地址指针用,存放数据存储器的16位地址。也可存放ROM的16位地址,以实现子程序的间接调作、转移及外部数据传送和查表等操作。 DPTR 程序状态字寄存器PSW 在程序的运行过程中,某些指令执行结束后会产生一些重要的特征,这些特征必须保存下来以供后续程序使用。PSW就是一个用于保存指令执行后所产生的特征的8位寄存器。字节地址:D0H,位地址:D0H~D7H。PSW的各位定义如下: PSW各位的定义 进位标志CY:功能有二:1、存放算术运算的进位标志。在进行加、减运算时,如操作结果使A中最高位D7有进位或借位产生则CY=1,否则CY=0;2、在位操作中CY作位累加器C使用。 辅助进位AC:加减运算中,当A中低4位向高4位有进位或借位时AC=1,否则AC=0 用户标志F0、F1:共用户定义的标志位,由用户根据需通过传送指令将其设置为0或1,作为软件标志。用以控制程序的转向。 工作寄存器区选择位RS1、RS0:由用户编程设定,用以选择四组工作寄存器中的某一组作为当前工作寄存器。 溢出标志位OV:用于指示累加器A在带符号数加减运算中是否发生溢出。溢出OV=1,否则OV=0。 奇偶标志位P:用于指示运算结果A中1的个数的奇

您可能关注的文档

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档