在8051存储区(00h至1Fh)中,8051向4个存储区中的每一个提供32个寄存器作为8个寄存器(R0 t0 R7)。 为什么这些寄存器不作为R0到R31给出?
先谢谢..
答案 0 :(得分:4)
许多指令操作码只有8位长;如果所有32个寄存器都可以在这些指令之一中访问,则只剩下3个位来编码指令长度和操作。类似地,两个字节指令通常使用第二个字节来编码一个完整的8位操作数(例如,一个地址),并且实际上具有相同的约束。
在许多情况下,可以使用更长的指令通过其绝对地址来引用您需要的寄存器,但如果您经常访问它,那么最好更改活动库以便您可以使用更短的时间操作码。
答案 1 :(得分:2)
据我记得,你一次只能访问其中的8个。要访问其他组之一,您需要切换银行。我想这与指令操作数只有3位长(而不是5位)有关。