8086指令格式
1.组成
8086的指令使用的是1-6Byte(s)的变长指令。由3个部分组成:
- 操作码(1 Byte)
- 操作数(寻址方式+寄存器/内存地址)(1-5 Byte(s))
举几个例子,下图是1Byte-6Bytes不同长度指令的划分:
2.举个例子
先来翻译一下上面的各个部分:D(Destination)目的操作数,W(word)字,MOD 模式/方式,REG(Register)寄存器,R/M(Register/Memery)内存或寄存器
根据解释可以看到,上面这种格式的指令,有源操作数和目的操作数,其中一个是寄存器变量,另一个是存储器/寄存器变量。
抽象为:
OPTION REG, REG
OPTION REG, M
OPTION M, REG
解释各个部分所表示的内容:
第一字节
第一字节的中的D和W与第二字节中的REG有很大的关系,D表示指令中的REG部分是否为目的操作数,D=1表示REG表示目标操作数;W表示操作数的类型(长度),W=1表示是一个字数据。
第二字节
第二字节中的MOD表示寻址的方式,共有4中:
- 00 存储器寻址,无偏移
- 01 存储其寻址,有8位的偏移
- 10 存储器寻址,有16位的偏移
- 11 寄