SJMP

SJMP

SJMP,是51單片機指令。

基本介紹


SJMP
SJMP
SJMP
SJMP
作用:PC PC+2,PC PC+rel
短轉移指令(-128—+127範圍內的轉移指令)
短轉移指令的功能是先使程序計數器PC加1兩次(即:取出指令碼),然後把加2后的地址和rel相加作為目標轉移地址。因此,短轉移指令是一條相對轉移指令,是一條雙位元組雙周期指令,指令碼格式為:80H rel(操作碼地址偏移量),這裡,80H是SJMP指令的操作碼;rel是地址偏移量,在程序中也常採用符號地址,上機運行前才被代碼成二進位形式。
注意:遇到具體問題時,頭腦中一定要清楚一個關係式:目標轉移地址=源地址+2+rel。
常見用法:SJMP$
即跳轉到本指令的起始位置開始執行,這樣就變成了循環執行,即原地跳轉,一般用來等待中斷。
但是本指令也不宜濫用。這是一條死循環指令,如果系統的中斷是開放的,那麼SJMP$指令實際上是在等待中斷,當有中斷申請后,CPU轉至執行中斷服務程序。中斷返回時,仍然返回到這條死循環指令,繼續等待中斷,而不是返回到該指令的下一條指令。這是因為執行SJMP$后,PC仍指向這條指令,中斷的斷點就是這條指令的首位元組地址。