我正在使用Atmel Studio 6.2爲Atmega328p編寫一些彙編代碼。我在atmel編寫AVR程序集,但「調用」指令不起作用
但是,當我使用模擬器和分步執行程序時,子程序的call
指令不起作用。它完全忽略了call
指令並繼續下一行。
爲了測試call
指示我寫了一個簡單的程序,它通常看起來如下:
.include "m328pdef.inc"
ldi R16, 11
call hello_world
mov R1, R0
nop
hello_world:
mov R0, R16
ret
但是,即使這不工作!它只是繼續執行mov R1, R0
。 可能是什麼原因?當call
不起作用時,這太惱人了!
在調試程序,你使用的命令「臺階」或命令「下一個?」 – fuz
我這麼問是因爲通常調試器有無論是執行處理器執行的下一條指令的命令,還是執行直至程序中下一行代碼(例如'hello_world'完成執行後)的命令。 – fuz
ooohh !!!我只是愚蠢的!是的,我很笨!當它打電話時,我應該點擊'進入'!!!!!它現在的作品T.T我不得不把我的頭撞到牆上的愚蠢!非常感謝:) :) :) – sosostris