STM32
直播中

张飞雄

7年用户 985经验值
私信 关注
[问答]

stm8复位后,PC的值为0x0000,而flash是从0x8000开始的,请问pc的值是怎么变化的呢?

stm8复位后,PC的值为0x0000,而flash是从0x8000开始的,请问pc的值是怎么变化的呢,谢谢

回帖(1)

王刚

2024-5-15 17:03:31
STM8是一款8位微控制器,其复位后的程序计数器(PC)寄存器值确实为0x0000。然而,STM8的Flash存储器并不是从0x8000开始的,而是从0x0000开始。这是因为STM8的内存映射是按照字节进行的,而不是按照传统的16位地址进行。

当STM8复位后,PC寄存器的值会指向0x0000地址,这是程序的起始地址。从这个地址开始,微控制器将按照指令顺序执行程序。在执行过程中,PC寄存器的值会根据指令的执行结果自动递增,以指向下一条指令。

以下是PC值变化的简要说明:

1. 复位后,PC寄存器的值为0x0000,指向程序的起始地址。
2. 微控制器从0x0000地址读取第一条指令并执行。
3. 执行完第一条指令后,PC寄存器的值自动递增,指向下一条指令的地址。
4. 微控制器继续从新的PC值地址读取并执行指令,PC寄存器的值继续递增。

这个过程会一直持续,直到程序执行完毕或者遇到跳转、循环等指令导致PC值发生变化。

总之,STM8复位后,PC寄存器的值从0x0000开始,随着程序的执行,PC值会根据指令的执行结果自动递增。而Flash存储器的起始地址也是从0x0000开始,而不是0x8000。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分