-1
我有一些问题,当我使用编译器非常好的未优化指令时,需要使用什么指令集。程序集指令集问题
我这有一个这样的void函数:
void feed(void)
{
IWDG_ReloadCounter();
}
这里有说明。
//PUSH REGISTER ONTO STACK
push {r7}
//ADD
add r7, sp, #0
//???
mov.w r3, #12288
//MOVE TOP
movt r3, #16384
//MOVE 16-BIT CONSTANT
movw r2, #43690
//STORE REGISTER WORD
str r2, [r3, #0]
//MOVE
mov sp, r7
//POP REGISTER FROM STACK
pop {r7}
//BRANCH INDIRECT
bx lr
能理解他们使用。任何人都有一些智慧的话语。
什么是你想在这里实现?编译器生成了9条指令。即使假设你可以改善这一点,除非你连续数周运行这些代码,否则这种改进将是不明显的。 – 2014-02-21 21:47:51
我试图做的事是让这个工作,因为它没有。 IWDG_ReloadCounter提供一个看门狗,以便系统不重启。而当我尝试使用这个函数生成的程序集时,什么都没有发生。它是一个空白,所以我不需要关于堆栈的东西,所以这些比推动堆栈和流行的东西更应该删除。 – mogren3000
然后,你需要重新说出你的问题。目标并不清楚你的目标是什么,而且远远没有足够的信息来帮助诊断。 – 2014-02-22 00:25:48