Running H/F 2
7.2.4
程序计数器(PC)
程序计数器是一个16 位寄存器,包含下一条指令或待取操作数的地址。
通常在程序执行期间,程序计数器在每次数据或指令被取出时会自动增加到存储器的下个连续位置。跳
转、转移、中断和返回操作向程序计数器装载一个地址而不是下个连续位置。这就是流程的改变。
复位时,程序计数器从0XFFFE 和0XFFF 处装载复位向量。向量存储位置的第一个指令将在退出复位状
态后被执行。
7.2.5
条件码寄存器(CCR)
8 位条件码寄存器包含中断屏蔽位I 和5 个标识最近执行指令结果的状态标志位。第6 位和第5 位恒为逻
辑1。下图简要描述了CCR 每个位的信息及功能。关于如何使用指令设置CCR 的每个位,请参阅HCS08 系
列参考手册,第1 卷,其文档号为HCS08RMv1。
7
0
条件码寄存器
V 1 1 H
I
N Z C CCR
进位标识
零标识
负标识
中断屏蔽位
半进位标识( 来自第三位)
溢出标识
图 7-2. 条形码寄存器(CCR)
表7-1. CCR 寄存器位功能描述
描述
位置
二进制补码溢出标志位—当二进制补码溢出时,CPU 将设置溢出标志位。有符号指令BGT、BGE、
BLE、BLT 使用溢出标志。
7
V
0 无溢出
1 溢出
半进位标志—执行加法指令(ADD)和带进位加法指令(ADC)时,如果累加器第3 和第4 位有进位,
CPU 设置半进位标志。半进位标志在BCD 码算术运算中很有用。DAA 指令用H 和C 的状态来自动调整
前面ADD 或者ADC 的结果,修正结果得到有效的BCD 值。
0 第3 位和第4 位之间无进位
4
H
1 第3 位和第4 位之间进位
中断屏蔽位—当中断屏蔽位被置位时,禁止CPU 中断。当中断屏蔽位被清除,开放CPU 中断。当中断
发生时,在第一个中断服务例程被执行之前,CPU 寄存器值被保存到堆栈后中断屏蔽被自动设置。在任
何指令正在清I (CLI、TAP)时,中断不被认可。这确保了CLI 或TAP 的下一个指令执行时不被干扰。
0 允许中断
1 禁止中断
3
I
负标志—CPU 运算时,如果产生负结果则将负标志置1,设置位7 的结果。如果装载或存储值的较多重要
位为1 的话,简单的装载或存储8 位或16 位值也会引起N 置1 。
2
N
MC9S08AC16 系列微控制器数据手册, 第6 版
飞思卡尔半导体公司
#