操作数语法¶
虽然有些指令是完整命令,但绝大多数指令后面必须跟操作数(参数)。清单 4-6 中的每个命令至少有一个操作数,比如 EBX、EAX 和 label1。
汇编操作数有三种形式:
(cid:127)立即值:内联声明的整数值(十六进制值有尾随的 h)。
(cid:127)寄存器:引用处理器寄存器的名称。
(cid:127)内存偏移量:用括号包裹的表达式,表示某个值的内存位置。
表达式可以是立即值或寄存器。也可以是寄存器与立即值的
和或差(比如 [REG+Ah] 或 [REG-10h])。
x86 汇编中的每条指令可以有零到三个操作数,用逗号分隔多个操作数。大多数情况下,需要两个操作数的指令有一个源操作数和一个目标操作数。这些操作数的顺序取决于汇编语法。例如,清单 4-7 展示了一组用 Intel 语法编写的伪命令,Windows(以及 Windows 游戏黑客)使用这种语法: