80C51设有4个通用工作寄存器组,有什么特点?如何选用?如何实现工作寄存器现场保护? (最好是书面语。)

2024-12-14 05:41:46
推荐回答(1个)
回答1:

片内数据RAM区的0——31(00H——1FH),共32个单元,是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0——R7,工作寄存器组如下所示:
RS1 RS0 组号 寄存器地址
0 0 0 00H——07H
0 1 1 08H——0FH
1 0 2 10H——17H
1 1 3 18H——1FH

在某一时刻,只能选用一个寄存器组。可以通过软件对程序状态字PSW中RS0、RS1两位的设置来实现。设置RS0、RS1时,可以对PSW采用字节寻址方式,也可以采用位寻址方式,间接或直接修改RS0、RS1的内容。
例如,若RS0、RS1均为1时,则选用工作寄存器3组为当前工作寄存器。若需要选用工作寄存器2组,则只需将RS0该为0,可用位寻址方式来实现。
特别是在中断嵌套时,只要通过软件对程序状态字PSW中的RS0、RS1两位进行设置,切换工作寄存器组,就可以极其方便地实现对工作寄存器的现场保护。
参考资料《单片机习题与试题解析》(高峰)