2012-01-16 38 views
0

將彙編程序轉換爲二進制代碼,然後在模擬器中爲8086運行一個簡單代碼。我將IP設置爲0004,而不是0006爲什麼在每個裝配(8086)行後添加了00 000?

MOV AX,21H 
ADD AX,42H

我覺得IP應該0004H,0000 MOV,那麼0000閱讀21H,和同爲ADD42H

而在模擬器,它是:

01000: B8 184 
01001: 21 003 
01002: 00 000 NULL 
02003: 05 005 
01004: 53 066 
01005: 00 000 NULL

爲什麼增加01002和01005的代碼是什麼意思?

回答

4

我認爲這是因爲ax寄存器是16位,所以常量實際上也是16位(兩個字節)。只是你的常量太小,你不會注意到高字節總是爲零。

嘗試

mov ax, 1234h 

,看看這是否是不同的。

相關問題