7
0
累加器
A
16 位变址寄存器H:X
H
X
变址寄存器( 高)
变址寄存器( 低)
15
8
7
0
0
0
SP
PC
堆栈指针
15
程序计数器
7
状况码寄存器
V 1 1 H I N Z C CCR
进位标识
零标识
负标识
中断屏蔽位
半进位标识( 来自第三位)
2进制补码溢出标识
图 7-1. CPU 寄存器
7.2.1
累加器(A)
这个累加器(A) 是通用的8 位寄存器。一个操作数经过累加器输入到算术逻辑单元(ALU ),在算术和
逻辑运算后,ALU 的结果通常存放入A 累加器。累加器可以用不同的寻址模式指定地址从存储器中装载数
据,或者累加器A 中的数据可以根据不同的寻址模式指定的地址装入到存储器中。
复位对累加器中的数据无影响。
7.2.2
变址寄存器(H:X)
这个16 位寄存器实际上是由两个8 位寄存器(H,X)组成,常一起作为一个16 位地址指针。其中,H
装地址的高字节,X 装地址的低字节。所有变址寻址方式指令用H:X 中的16 位的值作为索引参考指针。但
是,为了和早期M68HC05 系列兼容,部分指令只能在低8 位(X)上运行。
许多指令把X 作为第二个通用8 位寄存器来存储8 位数据。X 可以被清零,增加,递减,取反,移位,
循环移位。在算术逻辑操作时,转移指令用于X 与累加器A 进行数据交换。
为了和早期M68HC05 系列兼容,H 在复位时被设为0X00。复位对X 无影响。
7.2.3
堆栈指针(SP)
在一个自动后进先出(LIFO) 堆栈中,该16 位地址指针寄存器指向下一个可用地址。堆栈可以映射到有
RAM 的64K 字节空间内的任意地址,它可以与所提供的RAM 大小相同。堆栈可以自动保存子程序调用的返
回地址,中断操作中的返回地址和CPU 寄存器值,以及本地变量。AIS (Add Immediate to Stack pointer)
指令赋予一个8 位有符号立即数给SP。这种方法经常被用于为本地堆栈变量在堆栈中分配或回收空间。
为了兼容早期的M68HC05 系列,SP 复位后被设为0xFF。在复位初始化时,HCS08 程序通常将SP 的
值改为RAM 最后地址值(最高地址),来释放直接页上的RAM( 片上寄存器结束处一直到0x00FF)。
RSP (复位堆栈指针)是与M68HC05 系列兼容的指令,因为它仅影响堆栈指针的低位地址,所以很少
用在HCS08 程序中。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司