8086指令格式

8086指令格式包括1-6字节的变长指令,由操作码、操作数(寻址方式+寄存器/内存地址)组成。讲解了D、W、MOD、REG和R/M字段的意义,并通过实例解析了MOV和ADD指令的机器码生成过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 寄
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值