2012-01-16 40 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 

,看看这是否是不同的。

相关问题