指令在alu中执行时,下一条指令己经被取出放到指令寄存器等待执行了。算术逻辑单元alu和工作寄存器(w)承担算术逻辑操作任务。 pic16c5x提供二级堆栈(stack),所以子程序调用只有两层,使用时一定要注意这点,否则程序运行时将失去控制。picigc5x内部有384bit~2kb的只读程序存储器,下面介绍其结构和堆栈,picigc5x程序存储器结构如图3所示。 图3 pic16c5x程序存储器结构 从图3可以看出,pic程序存储器采用分页结构,每页长0.5kb,因此pic16c52程序存储器在1页之内,而pic16c54和picisc55程序存储器容量为1页,pici6c56和pici6c57的容量则分别为2页和4页。页面地址由状态寄存器b的第5位和第6位(pa0、pa1)确定。 程序转移时,在本页内可直接进行,在需跨页跳转时(goto、call指令),则必须根据将要跳转去的页面,把f3中的pa0、pa1位置成相应的值。 (3)相关指令。 堆栈picigc5x设有两层堆栈,堆栈1和堆栈2,供子程序调用。涉及堆栈操作的指令有两条。 ①call。
高性能RISC CPU:仅学习33个单字指令;所有指令都是单周期(200ns),具有2个周期的程序分支除外;运行速度:直流-20MHz时钟输入直流200ns指令周期;12位宽指令;8位宽数据路径;7或8种特殊功能硬件寄存器;2级深度硬件堆栈;数据和指令具有直接、间接和相对寻址模式,在线串行编程(ICSPTM);外设功能:具有8位可编程分频器的8位的实时时钟/计数器(TMR0)上电复位(PUR);器件复位定时器(DRT);具有片上RC振荡器的看门狗定时器(EDT)使运行更可靠;可编程代码保护;节电睡眠模式;可选振荡器选项:RC:低损耗RC振荡器;XT:标准晶体/谐振器;HS:高速晶体/谐振器;LP:节电,低频晶体