一、为什么要用到BANK?
C51单片机的最大寻址范围为2^16=64K,为了突破64K代码的限制,就需要采用C51的切BANK。
二、切BANK的原理
代码地址空间的上半部 ,以重叠BANK0的物理地址空间 , 硬件设计了 n个存储 器页面来存储程序代码 。在任一时刻 BANK0~n中 , 只能有一个 BANK 处于激 活状态。当BANKi处于激活状态时,其物理地址空间为BankBase Addr ~ 0xFFFF。 只有 当BANK处于激活状态时, BANK 中的程序代码才可以运行 。
逻辑地址范围都是相对的,更像是bank的编号,映射到可寻址的物理地址空间去!
为了寻址任意BANK中的过程代码,C51编译器为过程调用生成了如下的BANK地址: