SH6XX系列的程序计数器用于寻址程序 ROM。该计数器有12 位:页寄存
器(PC11),和循环递增计数器(PC10-PC0)。所以SH6XX系列以2K ROM為
一個BANK,4K ROM為一個页面。
程序计数器装入与该条指令相关的数据。对于目标地址大于2K 的ROM 空
间,可通过无条件跳转指令(JMP)设置页寄存器位的值实现跳转。程序计
数器只能寻址4K 程序ROM 空间。所以對於超過4KROM空間的芯片就有一個
ROMBANK寄存器控制ROM页面的切換。
如下面的寄存器1F( ROMBANK寄存器):
$1F - - - BNK0 R/W Bit0: Bank register for ROM
页切换技术用于扩展CPU 寻址范围。在SH6XX系列CPU的ROM空間地址結構
為低2K的ROM地址($000-$7FF)映射为ROM页面基本2K地址。CPU 地址空间
的高2K 映射为ROM 页面的擴展地址,所以SH69P26的縂6K ROM空間被劃分
為2 个ROM页面(BNK 0, 1)。
ROM 页面空间的 CPU 實際地址如下:
ROM Space
CPU Address
BNK = $00 BNK = $01
$000 - $7FF $0000 - $07FF (BANK 0) $0000 - $07FF (BANK 0)
$800 - $FFF $0800-$0FFF (BANK 1) $1000 - $17FF (BANK 2)
|