我編碼在裝配英特爾8086 TASM下DOSBox中,我經常絆倒在問題越來越的編譯錯誤「由相對跳出範圍內的一些字節」裏我的條件跳轉是。條件跳轉超出範圍在8086彙編
現在,我知道條件跳轉是短跳轉,但有什麼辦法可以......「伸展」它們嗎? :)我知道我可以放置中間跳轉或嘗試組裝代碼,以便跳轉到達,但隨着我的程序變大,我認爲後一種選擇可能被證明不如現在有效。
我可以通過某種方式告訴編譯器使用它,或者我可以以某種方式調整我的跳轉嗎?
我編碼在裝配英特爾8086 TASM下DOSBox中,我經常絆倒在問題越來越的編譯錯誤「由相對跳出範圍內的一些字節」裏我的條件跳轉是。條件跳轉超出範圍在8086彙編
現在,我知道條件跳轉是短跳轉,但有什麼辦法可以......「伸展」它們嗎? :)我知道我可以放置中間跳轉或嘗試組裝代碼,以便跳轉到達,但隨着我的程序變大,我認爲後一種選擇可能被證明不如現在有效。
我可以通過某種方式告訴編譯器使用它,或者我可以以某種方式調整我的跳轉嗎?
自從我完成了任何彙編代碼之後已經很長時間了,但是正如我記得的,通常的「擴展」條件跳轉的方法是顛倒測試的邏輯並將代表跳轉的絕對跳轉想要在有條件跳轉之後進行。
謝謝您的回覆,但請您詳細說明一下嗎?假設我有一個循環標籤,其中包含如下邏輯:
就像我說的那樣,這已經有一段時間了,但我想你會把它變成
太棒了,非常感謝你:) – Straightfw
另一種方法是將「跳躍表」放在伸手可及的範圍內,然後相對地跳到您想跳到的跳躍處。 :)
你可以很聰明,並改變表中的跳轉。課程調試這樣的代碼是「有趣」的樂趣「..
謝謝期待你的答覆。當然,調試是一場噩夢,這就是爲什麼我想遠離任何基於創造的解決方案的中點:) – Straightfw
\ *咳嗽* *大學課程* *咳嗽* * – Straightfw
然而,編寫大代碼的程序員的問題是無時間限制的。你沒有足夠的使用CALL。 –
看看你的彙編選項。他們中的大多數都有一個選項,您可以根據需要自動生成相對跳轉到遠程跳轉,然後(除了性能影響),您不必再考慮它了。 –