这是一个用于x86处理器的dos-assembly中的简单程序 . 这是一个简单的helloworld程序 .
我没有提到的是图像中下面的成功内存地址 . 该程序似乎从地址0100开始,十六进制为256.下一个地址是258.差异似乎是2个字节 . 指令(操作码地址)是2个字节吗?
然后再往下 - mov dx指令似乎占用3个字节(0117 - 011A),而mov ah指令占用2个字节 .
我认为指令(操作码地址)应占用内存中相同数量的字节 . 但显然我不明白这一点
是的,x86是一个具有可变机器代码大小的架构 . 命令的大小可以从1字节到大于10并且解码规则非常复杂 .
Here is an introduction to x86 encoding/decoding . 有关详尽的参考,请使用Intel Software Developer Manual,但它主要关注32位和64位模式 .
1 回答
是的,x86是一个具有可变机器代码大小的架构 . 命令的大小可以从1字节到大于10并且解码规则非常复杂 .
Here is an introduction to x86 encoding/decoding . 有关详尽的参考,请使用Intel Software Developer Manual,但它主要关注32位和64位模式 .