keil下如何在C语言代码中改变程序指针PC的内容?
执行下一条命令,PC内容自然就改变了...
00 说的很对 呵呵
C里引用下汇编。用在线汇编不行啊
比如<br /><br />__asm<br />{<br /> LD PC, = XXXXX<br />}<br /><br />编译都无法通过,说PC未定义。有三种方法你可以尝试一下
第一种,使用R15 eg: <br /><pre><br /> __asm void jing()<br />{<br /> LDR R15, = 0x2000;<br />}<br /></pre><br />第二种方法,把PC的指针改变定义到汇编文件中,通过C去调用改汇编文件<br />第三种,编写调试*.ini文件,将要改变PC的值写一个调试函数Func然后在需要的地方调用这个Func函数。楼主是指程序的绝对定位?
汇编下,先把地址压到栈中,然后执行RET指令
楼主你到底想干啥?直接强制转化为函数调用
((void(*)(void))地址)();LZ不出来逗了。。。
r15不行。ADS也不支持。
改变pc是为了跳转。估计主要是用在mmu开启关闭之际的跳转<br /><br />一般都在asm部分实现。非得在c调用的话,用asm做成一个函数给c调用。我是楼主
不知道楼上几位什么意思?什么地方逗了?<br /> 不知道实现了没有?
页:
[1]