是否可以修改或访问程序计数器?

时间:2011-12-26 11:14:53

标签: assembly embedded program-counter

在阅读程序计数器时,我开始知道程序计数器的特殊之处在于无法直接修改其值。

是否有任何间接方式来访问/修改程序计数器的内容?

2 个答案:

答案 0 :(得分:9)

您必须明白,如果修改PC,则执行的下一条指令将是新PC地址的指令。这只是一个无条件的跳转,所有处理器都有这样的指令。

通常没有LD PC,addr指令,但这正是JMP addr的作用,因此不能直接修改其值。但是,如果不修改代码的执行路径,则无法修改其值 - 从指定的地址继续执行。

在大多数情况下,也可以间接地进行,例如将堆栈指针设置为包含新地址的位置并调用RET返回指令。

不同的处理器和体系结构在许多方面可能表现不同,我上面提到的指令助记符是“通用的”,并不是指任何特定的指令集。

答案 1 :(得分:4)

无条件跳转指令直接修改PC的值。

相关问题