1. RO (间址寄存器)
R0并非实际存在的寄存器。它的主要功能是作为间接寻址指针。任何以RO为指针的指令实际上是对RAM
选择寄存器R4所指的数据进行操作。
2. R1 (定时器/计数器)
由TCC引脚的边沿(由CONT-4: TE 设定)或指令周期时钟触发加1操作。
可读写。
●
通过设置PAB (CONT-3) 来定义。
●
如果PAB位(CONT-3) 被清零,可将预除器分配给TCC.
只有当写入TCC寄存器时,预分频计数器的内容被清零。
3. R2 (程序计数器)和堆栈
●
根据控制器的类型,R2和硬件堆栈为10位宽。参见图3所示的程序计数器结构图。
●
产生1024x13位片内OTP ROM地址以获取对应的程序指令编码。- 一个程序页是1024字长。
●
在复位状态下R2所有位被清零。
●“JMP"指令直接装载R2低10位值。因此“JMP"可以让PC在一个程序页中任意跳转。
“CALL”指令装载PC的低10位值,并交PC+1的值入栈。因此子程序的入口地址可以一个程序页
任意地方。
●
"RET” ("RETk", “RETI")指令将栈顶的数据装载到PC中。
●
"ADD R2, A"允许把A的内容加到当前PC.上,同时PC的第9位和第10位被清零。
●
“MOVR2,A"允许将A寄存器的内容装载到PC的低8位,同时PC的第9位和第10位被清零。
任何对R2进行直接修改的指令(如:“ADDR2,A"、“MOVR2,A"、“BCR2, 6"、....都将会
引起PC的第9、10位清零,因此产生的跳转只限于- -程序页前256个地址。
●除了改变R2的指令需要2个指令周期外,其余的指令只需要一一个指令周期。 |