使用LCALL和ACALL指令,也就是調用子程序的指令,可以被RET指令返回,因為LCALL和ACALL指令保存了原地址,可以被RET使用。
另外,中斷程序中可以使用JMP指令,但是要保證盡快使用RETI回到原來的斷點,否則總是中斷,以後CPU也不會同級中斷。
-
問題的補充:
...最後,妳能用RET返回到調用前的位置嗎?
當然可以。
...會出多少次錯?
LCALL和ACALL指令保存原始地址,該地址存儲在堆棧中。
51單片機的堆棧在片內RAM中,空間有限。
有多少空間取決於在堆棧底部初始化的地址。此外,堆棧中還會保存其他內容。因此,妳需要計算妳能節省多少空間的回郵地址。
妳犯了多少次錯誤和妳寫的程序有關。
可以用keil軟件調試,壹步壹步運行妳的程序,可以知道堆棧空間的使用情況。