SH67P54
功½说明
1. CPU
CPU
包含以下功½模块: 程序计数器
(PC),
算术逻辑单元
(ALU),
进½标志
(CY),
累加器, 查表寄存器, 数据指针
(INX,
DPH, DPM,
和
DPL),
和堆栈。
1.1. PC
程序计数器用于寻址程序
ROM。该计数器有 12
½: 页寄存器
(PC11),
和循环进½计数器
(PC10, PC9, PC8, PC7, PC6,
PC5, PC4, PC3, PC2, PC1, PC0)。
程序计数器装入与该条指令相关的数据。对于目标地址大于
2K
的
ROM
空间, 可通过无条件跳½指令
(JMP)
设½页寄存
器½的值实现跳½。
程序计数器只½寻址
4K
程序
ROM
空间
(参考 ROM
说明)。
1.2. ALU
和
CY
ALU
执行算术运算和逻辑操½。ALU 具有下述功½:
二进制加法/减法
(ADC, ADCM, ADD, ADDM, SBC, SBCM,
SUB, SUBM, ADI, ADIM, SBI, SBIM)
加法/减法的十进制调整
(DAA, DAS)
逻辑操½
(AND, ANDM, EOR, EORM, OR, ORM, ANDIM,
EORIM, ORIM)
条件跳½
(BA0, BA1, BA2, BA3, BAZ, BNZ, BC, BNC)
逻辑移½
(SHR)
进½标志
(CY)
记½
ALU
算术运算操½中的进½/借½状态。
在中断或子程序调用过程中,
进½标志被压入堆栈中并于执行
RTNI
指令时由堆栈中弹出。它不受
RTNW
指令的½响。
1.3.
累加器
(AC)
累加器是一个四½寄存器, 其中保存了算术逻辑单元的运算结果。
它和ALU一起, ½完成与系统寄存器数据存储器之间的数据传送。
1.4.
查表寄存器
(TBR)
通过查表指令
(TJMP)
和常数返回指令
(RTNW)
可以实现读取
保存在程序存储器中的表格数据。查表指令执行时, 查表寄存
器
TBR
和
AC
中存放的是待读取
ROM
的½
8
½地址。TJMP
指令指向的
ROM
地址为
((PC11 - PC8) X (2
8
) + (TBR, AC))。
由
RTNW
指令将查表所得值返回至
(TBR, AC)
中。
表格数据的
第
7
½至第
4
½存放在
TBR
中,
3
½至第
0
½存放在
AC
中。
第
1.5.
数据指针
数据指针½直接寻址数据存储器。指针地址储存在寄存器
DPH (3
½),
DPM (3
½) 和
DPL (4
½)。
最大寻址范围为
3FFH。
通过索引寄存器
(INX),
可以读写由
DPH, DPM
和
DPL
指定的
数据存储器。
1.6.
堆栈
堆栈是一组寄存器, 在每次子程序调用或中断时½顺序保存
CY
和
PC (11-0)
中的值, 最高½保存
CY
值。其结构为
13
½
X
8
层。½遇到返回指令
(RTNI/RTNW)
时, 堆栈中的内容将按顺
序返回到
PC
中。堆栈中的数据按照先进后出的方式处理。
注意:
堆栈嵌套包括子程序调用和中断请求子程序调用, 其最大值为
8
层。如果程序调用和中断请求的数量超过
8
层, 堆栈底部将
溢出, 程序将无法正常执行。
2. RAM
内建
RAM
由通用数据存储器和系统寄存器组成。由于
RAM
的静态特性, 数据存储器½在
CPU
进入
STOP
或者
HALT
方式后保
持其中的数据不变。
2.1. RAM
寻址
用一条指令½直接访问数据存储器和系统寄存器。下列为存储器空间分配:
系统寄存器:
$000 - $01F, $370 - $377
数据存储器:
$020 - $16F
LCD
数据存储器:
$300 - $348
Segment
扫描输出存储器:
$358 - $36D
2.2.
系统寄存器的结构:
地址
$00
$01
$02
$03
$04
$05
$06
$07
第
3
½
IEX
IRQX
TM0.3
BTM.3
TL0.3
TH0.3
-
-
第
2
½
IET0
IRQT0
TM0.2
BTM.2
TL0.2
TH0.2
-
LCDON
第
1
½
IEBT
IRQBT
TM0.1
BTM.1
TL0.1
TH0.1
-
RLCD1
第
0
½
IEP
IRQP
TM0.0
BTM.0
TL0.0
TH0.0
-
RLCD0
读/写
读/写 中断允许标志寄存器
读/写 中断请求标志寄存器
读/写 定时器
0
模式寄存器
读/写 时基定时器模式寄存器
读/写 定时器
0
½½入/计数器½½寄存器
读/写 定时器
0
½½入/计数器高½寄存器
-
读/写
保留
第
1-0
½:
LCD
分压电阻选择寄存器
第
2
½:
LCD
开关选择寄存器
说明
5