Closed. This question needs details or clarity. It is not currently accepting answers. Learn more。
想改进这个问题吗?添加细节并通过editing this post澄清问题。
三年前关闭。
有人能帮我解释一下关于微控制器的银行选择寄存器的概念吗?我正在使用PIC18F,在课堂上阅读和学习数据移动。
银行选择登记和存取银行的概念对我来说仍然是新的和混乱的。(尤其是access bank,当我在google上搜索时,我看到的都是关于正规银行的内容=[)
我读到的一些令人困惑的例子:
指令:CLRF F,a====>将数据寄存器F清除为零。如果a=0,F位于存取银行;如果a=1,F位于BSR指定的银行
指令MOVWF F,a===>将数据从WREG移动到数据寄存器F。如果a=0,则F位于访问库中;如果a=1,则位于BSR指定的库中。
^我了解WREG等的第一部分,但不太了解访问银行和BSR。非常感谢如果有人知道任何资源或任何帮助:)
想改进这个问题吗?添加细节并通过editing this post澄清问题。
三年前关闭。
有人能帮我解释一下关于微控制器的银行选择寄存器的概念吗?我正在使用PIC18F,在课堂上阅读和学习数据移动。
银行选择登记和存取银行的概念对我来说仍然是新的和混乱的。(尤其是access bank,当我在google上搜索时,我看到的都是关于正规银行的内容=[)
我读到的一些令人困惑的例子:
指令:CLRF F,a====>将数据寄存器F清除为零。如果a=0,F位于存取银行;如果a=1,F位于BSR指定的银行
指令MOVWF F,a===>将数据从WREG移动到数据寄存器F。如果a=0,则F位于访问库中;如果a=1,则位于BSR指定的库中。
^我了解WREG等的第一部分,但不太了解访问银行和BSR。非常感谢如果有人知道任何资源或任何帮助:)
最佳答案
对银行的需求来自于PIC处理12位地址空间的能力,而单字节地址只适合8位。因此,需要将高位四位设置到Bank Select Register(BSR)中。
这种寻址方案很快成为一种负担,因为用于在银行之间切换的指令开始乱扔汇编程序的文本,而汇编程序的文本并不特别容易阅读,而且这些指令占用了宝贵的空间。为了缓解这个问题,PIC架构引入了所谓的访问库。
访问库包含一部分特殊地址空间(0..128个特殊字节,分布在库0上),以及来自最后一个库的一些寄存器。PIC使您能够访问这些位置,而无需切换银行,只需将a
设置为零。仔细规划内存使用情况,可以将常用访问的数据放入访问寄存器,并使用快速访问寻址模式,从而节省大量程序内存。
有关此主题的其他信息,请参见Q&A。
关于c - 有人可以帮我解释一下银行选择登记的概念吗? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38170870/
10-10 19:22