程序的执行是存储器和寄存器协同工作的过程。当单片机上电复位后,程序计数器(PC)被初始化为程序存储器的起始地址,然后 CPU 按照 PC 寄存器指向的地址从程序存储器中读取指令。在执行指令过程中,可能需要从数据存储器中读取操作数到寄存器,进行运算后再将结果存储回数据存储器或者其他寄存器。例如,在一个循环结构的程序中,循环计数器通常存储在寄存器中,每次循环时,CPU 会对计数器进行操作,并根据计数器的值判断是否继续循环,同时也可能会从数据存储器中读取或写入与循环相关的数据。
在单片机执行指令过程中,数据常常需要在存储器和寄存器之间传递。例如,当要对一个存储在数据存储器中的变量进行算术运算时,首先需要将该变量的值读取到寄存器中。以加法运算为例,假设要计算存储在内存地址0x100处的变量a和存储在内存地址0x104处的变量b的和,CPU 会先将a的值从内存加载到一个寄存器(如累加器 A)中,再将b的值加载到另一个寄存器或者与累加器 A 进行运算,最后将结果存回数据存储器或者其他寄存器。