首页 > 解决方案 > x86 ADD 指令的正确编码

问题描述

我手动编码以下指令:

add [di], al

而根据我对x86文档的理解,对应的机器码应该是:

00 07

使用 编译上述代码时nasm,我得到以下信息:

# echo "add [di], al" > test.asm && nasm test.asm && xxd -ps test
0005

使用 编译时也会发生同样的情况as

我怀疑这与 16/32/64 位编码有关,但我找不到这方面的信息。

标签: assemblyx86-16

解决方案


不,根据这个参考 00 07对应于add [bx], al并且00 05是正确的add [di], al


推荐阅读