UM-TM57PA20&40_S
8 Bit Microcontroller
Advance Information
5.1.3 程序计数器和堆栈
程序计数器是一个 12-bit 宽,可寻址 4K*14 的程序只读存储器。当一个程序指令被执
行时,PC 里就存放着下一条将要被执行程序的地址。PC 值都会自动加一,以下情况
除外:复位向量(000h)和中断向量(001h)被提供用于 PC 初始化和中断。对于
CALL/GOTO 指令,PC 从指令中加载 12 位地址。对于 RET/RETI/RETLW 指令,PC 从堆栈顶取回其地址
值。对于更新 PC[7:0]的其他指令,PC[11:8]不变。堆栈有 12 位宽,深 6 级。CALL 指令和硬件中断
将依顺序进入堆栈,RET/RETI/RETLW 指令将按顺序弹出堆栈。
5.1.4 ALU 和工作寄存器
ALU 是个 8 位的算术逻辑单元,ALU 可以对 W 寄存器和其它寄存器中的数据进行加,减,
移位以及逻辑运算.在两个操作数的指令中,主操作数是一个 8 位不可寻址的用于 ALU
操作的 W 寄存器.另一个操作数是一个文件寄存器或者一个立即常量.在单个操作数的
指令中,操作数是 W 寄存器或者文件寄存器。指令执行时,ALU 可能影响状态寄存器
中的标志位 C,DC 和 Z。 C 和 DC 标志运用于借位和十进制借位,特别是在减法中。
5.1.5 状态寄存器
状态寄存器包含 ALU 计算结果的状态和复位状态。状态寄存器和其它的寄存器一样可
以是任何寄存器的目的单元格。如果是影响 Z,DC 或 C 标志位的指令以状态寄存器作
为目的单元格,那么就不可以写进这三个标志位了. 这些位的置位或清零是来自 ALU 运
算的逻辑值.所以,只有 BCF,BSF 和 MOVWF 指令被推荐选择状态寄存器用,因为这些指
令不影响标志值.
7
tenx technology, inc.
Preliminary
Rev 1.1, 2009/10/19