2011-11-01 263 views
2

我不確定cbw命令實際執行的操作。我有一段代碼:彙編語言:cbw

mov ax,0FF0h 
cbw 
idiv ah 

ax的值在cbw後如何變化?

回答

6

cbw指令符號 - 將一個字節擴展爲一個字。在這種情況下,它將採用AL(恰好爲1)的符號位並將其複製到AH的每一位中。

這意味着AX的二進制補碼值將是相同的,但二進制表示形式將有所不同。

AXcbw指令後的值將是FFF0h(16位-16值,就像AL原是一個8位-16)

+0

感謝。我知道你對'AL'的符號位的解釋是1,因爲它是負數,但我爲什麼'AL'最初是一個8位-1,我有點困惑。最初是不是'AL' -16(符號位等於1)? – raphnguyen

+1

0FF0h中的最後一個零被忽略了。 CBW後AX應該變爲0FFF0h。 –

+0

@Alex:哎呀,謝謝你指出。 –