2017-06-22 53 views
0

我在Z80彙編語言以下指令:指令「JP」在哪裏?實際上跳?

JP . 

這不是很清楚,我在那裏跳躍。

+0

你正在使用哪種彙編程序? – harold

+2

這不是zilog的問題,而是您的彙編程序的「特性」。很可能它是一個「現在的地址」。反彙編輸出,如果你得到像'03f1 JP 0x03f1'這是 – Tommylee2k

+1

你使用的彙編器將是有用的,因爲哈羅德問。我已經看到'$'和'*'(取決於彙編程序)是當前的程序計數器。可能'''(期間)是程序計數器。 –

回答

1

JP .指令意味着PC保持在那裏!

0

許多彙編程序提供特殊變量或其他符號,可用於表示裝配過程中可用的有用信息。

例如,一個早期的彙編(這是深藏在我的過去,所以我不知道到底是哪一個),用於$表示被組裝到當前位置,允許你做這樣的事情:

msg: ds "This is my message" 
msg_sz: equ $ - msg 

鑑於$是組裝成,符號msg_sz將被設置爲減去消息,從而有效地爲所述消息的大小的開始的下一個字節。然後,您可以將msg加載到一個寄存器中,msg_sz加載到另一個寄存器中,然後調用使用這兩個值來處理消息的函數。

幾乎可以肯定的是.在你的彙編正在執行相同的功能,因爲這將有效地使jump一個無限循環,這是我們經常在我們早期的彙編分配用來發信號程序結束 - 大部分的東西我們也就是在裸機上,因此沒有操作系統返回:-)

而且,事實上,GNU彙編as仍然使用期限爲special symbol

特殊符號'.'指的是正在裝入的當前地址。因此,表達式'melvin: .long .'定義爲Melvin以包含其自己的地址。指定.的值與.org指令的處理方式相同。因此,表達式'.=.+4'與說'.space 4'相同。

相關問題