有人能帮我解释一下银行选择寄存器的概念吗?

时间:2016-07-03 14:22:49

标签: c assembly binary microcontroller

有人可以帮我解释一下有关微控制器的存储区选择寄存器的概念吗?我正在使用PIC18F,正在阅读并了解课堂上的数据移动。 银行选择寄存器和访问银行的概念仍然是新的,让我感到困惑。 (特别是访问银行,当我进行谷歌搜索时,我看到的只是关于普通货币银行的东西= [)

我读到的令人困惑的事例:

说明:CLRF F,a ==========>清除数据寄存器F为零。如果a = 0,则F位于访问存储区中,如果a = 1

,则F位于BSR指定的存储区中

指令MOVWF F,a =========>将数据从WREG移动到数据寄存器F.如果a = 0则F位于存取存储区中,如果a = 1,则位于BSR指定的存储区中。

^我理解WREG等的第一部分......,但并不真正理解访问库和BSR。非常感谢,如果有人知道任何资源或任何东西来帮助:)

1 个答案:

答案 0 :(得分:2)

对存储体的需求来自PIC能够处理12位地址空间,而单字节地址仅适用于8位。因此,您需要将高4位设置为存储区选择寄存器(BSR)。

这种寻址方案很快成为一种负担,因为在银行之间切换的指令开始乱扔装配程序的文本,这不是特别容易阅读,并且因为这些指令占用了宝贵的空间。为了缓解这个问题,PIC架构引入了所谓的访问银行

访问库包含一部分特殊地址空间,分布在BANK 0上的0..128个特殊字节,以及最后一个库中的一些寄存器。只需将a设置为零,PIC就可以在不切换库的情况下访问这些位置。仔细规划内存使用情况可以通过将常用数据放入访问寄存器并使用快速访问寻址模式来节省大量程序内存。

有关此主题的其他信息,请参阅此Q&A