[STM8] STM8 程序计数器 PC的问题

[复制链接]
3825|5
 楼主| wojiademao 发表于 2011-4-24 20:54 | 显示全部楼层 |阅读模式
本帖最后由 wojiademao 于 2011-4-24 20:58 编辑

各位大虾好,最近遇到STM8 PC问题请教,PC指针在一些寻址模式中执行的是PC=PC+1,在另一些模式中执行的是PC=PC+2,如附图红点处所示所示,不知道怎么理解,谢谢!
1.jpg
2.jpg
香水城 发表于 2011-4-24 21:22 | 显示全部楼层
指令长度不同。
CC2530 发表于 2011-4-24 21:49 | 显示全部楼层
当前指令长度为1,下一个指令的地址是PC+1
当前指令长度为2,下一个指令的地址是PC+2
当前指令长度为3,下一个指令的地址是PC+3
 楼主| wojiademao 发表于 2011-4-25 09:06 | 显示全部楼层
3# CC2530
按你这个理解是执行完一条指令,按指令大小可以加1,加2或加3。不过,这个图上是开始执行这条指令时PC的指向,如上图1,PC开始执行指令时指向052D,然后PC=PC+1(PC=052E),这条指令2个字节,执行完这条指令后PC=052F;图2,PC开始执行指令时PC=0409,然后PC=PC+2(040B),指令大小3个字节,执行完后PC=040C.按指令大小执行完后PC的值是可以理解的,就是执行过程中中间PC值,何时是PC+1,何时是PC+2,这个不好理解,求助,谢谢!
 楼主| wojiademao 发表于 2011-4-25 09:09 | 显示全部楼层
2# 香水城
指令长度不同,执行完一条指令PC是按指令长度大小相加的,1个字节是PC=PC+1,2个字节是PC+2。不过这个手册上,如上图部分是指令在没执行前PC的变化,就是不知道这时PC何时是PC+1,何时是PC+2?
谢谢!
 楼主| wojiademao 发表于 2011-4-26 08:56 | 显示全部楼层
2# 香水城
香主,求助
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

27

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部