2024年4月2日发(作者:)

汇编指令与机器码的相互转换

机器语言我们只要重点理解一下几个概念:

1. 机器语言指令有操作码(OP)和地址码两部分组成

|_____________OP_______________|__d__|__w__|

|_____________OP_______________|__s__|__w__| <--此格式用于立即寻址方式

在多数操作码中,常使用某些位来指示某些信息:

如图上结构里的: w=1 时 对字来操作

w=0 时 对字节来操作

d值在双操作数指令中才有效

当 d=1 时 有且只有一个寄存器用于目的操作数

d=0 时 有且只有一个寄存器用于源操作数

s=1 时 立即数为8位,但要求扩展成16位数

s=0 时 当指令作字节操作/有16位立即数

由于汇编的指令格式很多,这里我只作一些基本情况介绍,必要时读者可以下载/查阅

80x86汇编小站提供的OPCODES手册来查阅。

2. 寻址方式的机器语言表示:

| mod | reg | r/m |

|_____|_____|_____|_____|_____|_____|_____|

reg 表示寄存器方式,在不包括立即数的双操作数指令的情况下,规定必须有一个操

作数在寄存器中,该寄存器由reg字段指定,并与操作码字节中的w位相组合确定的寄存

mod字段与r/m(register/memory)字段结合在一起确定另一个操作数的寻址方式现

在你们下载了80x86汇编小站()提供的OPCODES 手册了吗?

下载好了,请解压后打开里面的: 文件,然后熟悉里面的表格:

现在熟悉简单的:

______________________________________________________________________________

表1 rrr : W=0 : W=1 : reg32