2016-04-24 114 views
0

我在研究8086指令集,並在emu8086中編寫簡單的彙編代碼。我理解了所有MOV,ADD和其他指令,直到遇到LOOP指令。 LOOP被轉換成E2,沒關係。但是要分支的標籤,彙編器如何轉換它?如果代碼很簡單,許多時間'標籤'被轉換爲FC。有時候給FA,F8和其他人。如果您討論將標籤名稱轉換爲相應機器碼的機制,這將非常可觀。8086彙編程序如何將標籤轉換爲操作碼?

感謝。

回答

2

正如在this page上所解釋的那樣,標籤對我們來說只是一個助記符(程序員)。彙編器將該標籤翻譯成數字,例如要添加到要跳轉到的指令指針的偏移量,而CX不爲零。 在您顯示的示例中,這些偏移量是負數(符號位設置爲1)。所以它會跳回幾條指令,就像你期望的循環一樣。