2011-10-17 88 views
2

這似乎是一個小問題,但我迷路了。截斷2字節變量爲1字節

在這個例子中,character是一個2字節的變量,而bx是一個單字節。我試圖做cmp bx, [character],這顯然不會因爲大小的差異而起作用。

我想比較bx只有第一個字節character。思考?

回答

4

BX rebister是16位的大小,是由兩個8位BLBH組成!

對於16位CMP您可以使用前綴:

cmp bx, word ptr[character] 

8位BL CMP

cmp bl, byte ptr[character] 

或8位BH CMP

cmp bh, byte ptr[character + 1] 
+0

謝謝!我正在尋找第一個字節(不是第二個),所以cmp bh,byte ptr [character + 0]完成了這項工作。 –

+2

前綴不需要(或不應該)。一個體面的彙編程序可以發現'bl'將比較一個字節的字節和'bx'。 –