操作数
操作数是参加某种功能操作的数据,有三种方式提供:
1.立即数
2.通过寄存器
3.通过内纯
1.立即数
汇编里的立即数相当于C语言中的常量,可以写成二进制(B),八进制(O),十进制(D),十六进制(H)。
例:
mov ax, 8d ;8d即为立即数
立即数只能为源操作数,不能放在目的操作数位置。
2.寄存器操作数
指操作数存放在寄存器中,用来存放运算的数据或存放运算结果。寄存器包括段寄存器、控制寄存器和通用寄存器。 1.段寄存器(DS、SS、ES) 是用来存放段地址的,要将段地址送入,必须以通用寄存器为桥梁。
2.控制寄存器(IP、EIP、FLAGS)
控制寄存器同样不能直接送入操作数。
3.通用寄存器
通用寄存器可以直接送入立即数。
3.内存操作数
内存操作数指操作数存放在内存中,方式是往内存中写入或取得操作数。CPU与内存打交道是通过内存地址完成的。
对于单操作数指令:操作数只能是寄存器操作数和内存操作数。 对于双操作数:源操作数可以是寄存器操作数、内存操作数和立即数。目的操作数可以是寄存器操作数和内存操作数。源操作数、目的操作数不能同时为内存操作数。 |