一. mov EAX , 0x12
1.mov 目标操作数 ,源操作数
作用把 源操作数拷贝到目标操作数
mov 语法
1.mov r/m8 ,r8 r 代表通用寄存器
2.mov r/m16 ,r16 m 代表内存
3.mov r/m32 ,r32 imm 代表立即数
4.mov r8,r/m8 r8代表8位寄存器
5.mov r16,r/m16 m8代表8位内存
6.mov r32,r/m32 imm8代表8位立即数
7.mov r8,imm8
8.mov r16,imm16
9.mov r32,imm32
二.ADD加运算
add eax ,12
add 目标操作数 ,源操作数
作用:把源操作数 与目标操作数相加,并且把结果存到目标操作数
1.add r/m8 ,r8
2.add r/m16 ,r16
3.add r/m32 ,r32
4.add r8,r/m8
5.add r16,r/m16
6.add r32,r/m32
7.add r8,imm8
8.add r16,imm16
9.add r32,imm32
三.减运算 sub
sub eax ,12
sub 目标操作数 ,源操作数
作用:用目标操作数相减去源操作数,并且把结果存到目标操作数
1.sub r/m8 ,r8
2.sub r/m16 ,r16
3.sub r/m32 ,r32
4.sub r8,r/m8
5.sub r16,r/m16
6.sub r32,r/m32
7.sub r8,imm8
8.sub r16,imm16
9.sub r32,imm32
四. 与运算AND
AND eax,12
AND 目标操作数 ,源操作数
作用:用目标操作数和源操作数进行(与运算&),并且把结果存到目标操作数
1.AND r/m8 ,r8
2.AND r/m16 ,r16
3.AND r/m32 ,r32
4.AND r8,r/m8
5.AND r16,r/m16
6.AND r32,r/m32
7.AND r8,imm8
8.AND r16,imm16
9.AND r32,imm32
五.或运算or
or eax,12
or 目标操作数 ,源操作数
作用:用目标操作数和源操作数进行(或运算|),并且把结果存到目标操作数
1.or r/m8 ,r8
2.or r/m16 ,r16
3.or r/m32 ,r32
4.or r8,r/m8
5.or r16,r/m16
6.or r32,r/m32
7.or r8,imm8
8.or r16,imm16
9.or r32,imm32
六.异或运算or
xor eax,12
xor 目标操作数 ,源操作数
作用:用目标操作数和源操作数进行(异或运算),并且把结果存到目标操作数
1.xor r/m8 ,r8
2.xor r/m16 ,r16
3.xor r/m32 ,r32
4.xor r8,r/m8
5.xor r16,r/m16
6.xor r32,r/m32
7.xor r8,imm8
8.xor r16,imm16
9.xor r32,imm32
七.NOT运算
not eax
not 目标操作数
作用:用目标操作数把操作数按位取反
1.not r/m8
2.not r/m16
3.not r/m32
八 .取内存地址
lea eax,dword ptr ds:[0012ffc4]
lea 目标操作数 ,源操作数
作用把内存编号地址0012ffc4值给到eax ,存内存值
九.堆栈
1.push eax 压栈:把eax的数据压到栈顶里面
2.pop eax 出栈:把栈顶的数据弹出到eax
压栈,出栈可以操作eax(4个字节,32位二进制)和 ax(2个字节,16位二进制),8位二进制则不行
3.pushad 是一次性直接压入8个寄存器的数据
4.popad 一次性出栈8个寄存器的数据
十.ADC 带进位的加法指令
mov eax ,1
ADC eax,2 结果为4
ADC r//m,/r/m/im 两边不能同时为内存
十一.SBB 带借位的减法
SBB r//m,/r/m/im 两边不能同时为内存
十二.XCHG 交换数据
XCHG eax,ecx
xchg r//m,/r/m 两边不能同时为内存
十三.movs 移动数据 内存-内存
movsb byte ptr es:[0x12345678],byte ptr ds:[0x1ffcde]
movsw word ptr es:[0x12345678],word ptr ds:[0x1ffcde]
movsd dword ptr es:[0x12345678],word ptr ds:[0x1ffcde]
内存编号地址会加2个字节还是减会受到DF位的影响
十四.STOS指令:将al/ax/eax的值存储到[EDI]指定的内存单元
stosb byte ptr es:[EDI]
stosw word ptr es:[EDI]
stosd dword ptr es:[EDI]
内存编号地址会加2个字节还是减会受到DF位的影响
十四.REP指令:按计数寄存器(ECX)中指定的次数重复执行字符串指令
mov ecx,5
rep stosb byte ptr es:[EDI]