2014-02-09 124 views

回答

1

假設英特爾的語法,其中

MOV AX, EBX 

如果允許的話,會EBX的內容複製到AX。

試試吧。正如我記得它不被支持。但是您可以複製任何16位組,例如

MOV AX, BX 

然而,對於相反,延長位模式,像假想

MOV EBX, AX 

如何做到這一點取決於你想要什麼。

如果AX代表一個無符號整數,只需清除EBX並複製到下半部分,例如,

XOR EBX, EBX 
MOV BX, AX 

然而,如果AX代表一個有符號整數(二進制補碼),你需要複製符號位遍及16點高位一路,這就是所謂符號擴展

谷歌搜索中的「x86符號擴展」給我

MOVS EBX, AX 

,但我還沒有嘗試過(也就是我還沒有嘗試過現在,但也許20年前,我不知道知道)。

總之,參考文檔嘗試一下

1

使用MOV AX,BX,向的BX的低16位移動到斧。

使用MOVSX EBX,斧移動斧到EBX帶符號擴展

使用MOVZX EBX,斧頭斧遷入EBX,歸零EBX的高16位。

+0

「mov ebx,ax?會發生什麼?」將是16 - > 32. – rcgldr

+0

是否確定支持。 –

+0

自386以來,已經支持movsx和movzx。 – rcgldr

0

MOV AX,EBX ...如果這樣可以編譯,你可能會在AX中得到BX。

MOV EBX,AX將得到BX AX和零點之前...

我沒有在我的手彙編的權利,但請試試,看看會發生什麼......

+0

如果你的彙編程序支持'mov ax,ebx',那麼你的彙編程序就壞了,你應該得到一個新的彙編程序。 – Griwes

+0

@Griwes不能同意更多:)! – fritzone

相關問題