OD 汇编指令 记录(1)

一. 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]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值