2017-04-17 769 views
2

幾乎我到目前爲止所看到的所有簡單的8051程序都以代碼 LOOP: SJMP LOOP結尾。爲什麼一些8051程序以代碼「LOOP:SJMP LOOP」結束

從我的理解,我認爲上述指令通過一次又一次地調用相同的指令創建了一個無限循環。但是,什麼是具有在節目結束無限循環的目的,如果它保持連連運行,那麼什麼時候該程序被終止。

+1

,使程序無法繼續的最後一條指令執行後隨機/半隨機的數據。 CPU將其視爲數據,並很樂意嘗試執行內存中的任何內容,從而導致未定義的行爲。把處理器放在這樣一個循環中可以防止CPU漫無目的地穿過內存中的任何東西。 –

回答

5

不然怎麼「終止」或結束裸機程序?通常沒有停止或其他命令,處理器不停止。最安全/最乾淨的就是讓它有無限循環(而不是僅僅在內存中漫遊,試圖執行它發現的內容)。

這麼簡單的教育處理器/微控制器的程序,程序,「結束」,你會想結束他們在一個無限循環如果處理器不必須停止。大多數微控制器永不死機他們跑什麼永遠的(他們可能會去在低功耗狀態睡覺,但後來醒了,當你按下遙控器或任何一個按鈕)。

相關問題