51特殊功能寄存器

51有21个SFR(Special Function Register),分布在内部80H~FFH单元中。这128个单元中,特殊功能寄存器仅占用了21个单元,其余单元51单片机不能对它们进行读/写操作(即不能作内部数据存储器使用)。单元地址可被8整除的SFR可位寻址。如图



1)累加器A或特殊功能寄存器ACC

累加器为8位寄存器,用于存放操作数,也可用来存放运算的中间结果。A和ACC虽是同一个寄存器,但是在指令中它们却是有区别的。符号指令中的A不能用ACC代替,特殊功能寄存器直接寻址和位名称寻址要用ACC,而不能用A代替。累加器自身带有零标志Z,累加器的值为0,零标志Z=1;累加器的值不为0,零标志Z=0

2)数据指示器(Data Pointer)

51中唯一能出现在符号指令中的一个16位寄存器。DPTR既可按16位寄存器使用,又可以分为两个8位的寄存器使用,即DPH和DPL。DPTR通常用作访问外部数据存储器或扩展I/O的间接地址存储器,还可以和累加器A一起用作程序存储器的变址寄存器。

3)程序状态字存储器PSW

PSW是一个8位的寄存器,用于存放程序运行的状态信息。有些位的状态是根据程序操作的结果,由硬件自动设置;有些则由指令设置。PSW的位状态可以用专门的指令进行测试,也可以用指令读出。一些条件转移指令就是根据PSW有关位进行程序转移的。PSW各位定义如图


进位或借位标志CY(PSW.7):功能有二:一是存放加减运算的进(借)位;二是在位操作指令中作累加位C使用

辅助进位标志AC(PSW.6):加减运算中的低4位向高4位有进位或借位则AC=1,无进位或借位则AC=0

溢出标志位OV(PSW.2):计算机所进行的运算都是无符号数运算,即把符号数的符号位也当作数值进行运算,又把所有数的运算结果当符号数来影响溢出标志位。OV=1表示溢出。

奇偶标志位P(PSW.0):表示累加器中数的奇偶性。P根据累加器中1的个数是奇数或是偶数,自动置1或清0。

寄存器组选择位RS1和RS0(PSW.4和PSW.3):见图

通用标志位F0和F1(PSW.5和PSW.1):可位寻址用于软件控制的通用标志位。有的汇编器只定义了F0,用户可使用位定义伪指令BIT将PSW.1定义为标志位F1。

4)堆栈和堆栈指示器SP

51单片机的栈的伸展方向是从低地址向高地址,堆栈操作是字节操作。

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值