讲述stm8系列单片机的CPU特点。之所以还要了解CPU,是为了便于我们今后对单片机软件的编程有一个方向性的把握,我们可以更好的知道程序在执行过程中,它的每一段代码在干着一件什么样的事,它的时序是什么样的,从而提升我们对CPU更有效的利用。
对于stm8单片机的CPU,它有六个寄存器,我们需要了解里面有着重要功能的几个(直接和我们写代码相关联),知道它们的作用。
1.累加器:A。8位通用目的寄存器,用于算术运算、逻辑运算以及数据操作的操作数及结果。
2.索引寄存器(X和Y)。16位,用于寻址,也可用作数据操作的暂存器以及用于像乘除法这样的操作。
3.程序计数器(PC)。24位,用于存储CPU下一条要执行指令的地址。
4af30001dd4b0ef6dfcf?from=pc.jpg

图1 CPU的寄存器

4.堆栈指针(SP)。16位,用于在中断调用或子程序调用时存储CPU的上下文(程序计数器,关键寄存器,相关函数的参数及局部变量,等等)。下图显示了入栈出栈顺序。
4af0000252232ba3fa31?from=pc.jpg

图2 入栈出栈顺序

如果我们自己在相应软件下写代码进行debug模式时,可以看到CPU中各寄存器的运行状况,这是一个参考了。
最后,我们了解CPU的一个不常用的寄存器:CFG_GCR(是否我们想使用其SWIM功能)。通常我们使用SWIM功能用于下载程序使用。如果我们恰好想要使用其IO口模式,可以在此处配置。
4aef000269c3216062bd?from=pc.jpg

图3 CFG_GCR寄存器