-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