2017-01-06 93 views
-6

在該組件中(8086)碼將是什麼每個這些寄存器的值:BLAHAL添加值AX寄存器,但使用AH和AL

這是驗證碼:

MOV AX, 1900 
MOV BL, AH 
INC AL 
+8

你應該能夠這樣做自己。如果沒有,請在調試器中嘗試。 – Jester

回答

1

AX = AL + AH * 256

這意味着,BL約爲某處給予或加上一個。

其餘的在AL

這是真實的,因爲如果AX=256,然後AL=0AH=1

256 = 0 + 1 * 256

79 = 79 + 0 * 256

65535 = 256 * 256 - 1

+1

「65535 = 256 * 256 -1」雖然這是正確的,但在這種情況下看到這一點很奇怪!從邏輯上講,所有這些數值例子都說明了第一行給出的公式(AX = AL + AH * 256)。因此最後一個例子應該是:__65535 = 255 + 255 * 256__ – Fifoernik

+0

哈!好的趕上!讀這個我意識到爲什麼我想出了它!就在最近一整週,我試圖解決一個'codegolf',並且我的python代碼的一行是'QuadWord [:] = 256 * 256 * 256 * 256-1',是切換之前的最後一位'double-'到'quadword'。 :D通過這種方式,我的思路更容易將字節映射到各自的寄存器。 :d –