16位CPU在进行堆栈操作时,分别用到的寄存器有哪些?
1个回答
展开全部
了解CPU,是为了便于我们今后对单片机软件的编程有一个方向性的把握,我们可以更好的知道程序在执行过程中,它的每一段代码在干着一件什么样的事,它的时序是什么样的,从而提升我们对CPU更有效的利用。
对于stm8单片机的CPU,它有六个寄存器,我们需要了解里面有着重要功能的几个(直接和我们写代码相关联),知道它们的作用。
1.累加器:A。8位通用目的寄存器,用于算术运算、逻辑运算以及数据操作的操作数及结果。
2.索引寄存器(X和Y)。16位,用于寻址,也可用作数据操作的暂存器以及用于像乘除法这样的操作。
3.程序计数器(PC)。24位,用于存储CPU下一条要执行指令的地址。
图1 CPU的寄存器
4.堆栈指针(SP)。16位,用于在中断调用或子程序调用时存储CPU的上下文(程序计数器,关键寄存器,相关函数的参数及局部变量,等等)。下图显示了入栈出栈顺序。
图2 入栈出栈顺序
如果我们自己在相应软件下写代码进行debug模式时,可以看到CPU中各寄存器的运行状况,这是一个参考了。
最后,我们了解CPU的一个不常用的寄存器:CFG_GCR(是否我们想使用其SWIM功能)。通常我们使用SWIM功能用于下载程序使用。如果我们恰好想要使用其IO口模式,可以在此处配置。
对于stm8单片机的CPU,它有六个寄存器,我们需要了解里面有着重要功能的几个(直接和我们写代码相关联),知道它们的作用。
1.累加器:A。8位通用目的寄存器,用于算术运算、逻辑运算以及数据操作的操作数及结果。
2.索引寄存器(X和Y)。16位,用于寻址,也可用作数据操作的暂存器以及用于像乘除法这样的操作。
3.程序计数器(PC)。24位,用于存储CPU下一条要执行指令的地址。
图1 CPU的寄存器
4.堆栈指针(SP)。16位,用于在中断调用或子程序调用时存储CPU的上下文(程序计数器,关键寄存器,相关函数的参数及局部变量,等等)。下图显示了入栈出栈顺序。
图2 入栈出栈顺序
如果我们自己在相应软件下写代码进行debug模式时,可以看到CPU中各寄存器的运行状况,这是一个参考了。
最后,我们了解CPU的一个不常用的寄存器:CFG_GCR(是否我们想使用其SWIM功能)。通常我们使用SWIM功能用于下载程序使用。如果我们恰好想要使用其IO口模式,可以在此处配置。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询