X86的常用汇编指令

本文详细介绍了汇编语言中的基础指令及其用途,包括数据移动、算术运算、逻辑运算、控制转移等关键操作。

指令

含义

mov

将右操作数复制到左操作数

lea

装入有效地址。用来得到局部变量和函数参数的指针

push

将操作数压到堆栈的栈顶

pop

将堆栈的栈顶数弹出到操作数中

pushad

将所有通用寄存器压到堆栈的栈顶

popad

将堆栈的栈顶数弹出到所有的通用寄存器中

call

调用一个函数。以寄存器和偏移量来调用函数和c++里的虚函数调用很类似

ret

从一个函数返回。_stdcall调用规范要求如果有返回值,就要将返回值从堆栈的栈顶弹出

leave

move ESPEBP/pop EBP的简写,用来退出函数

add

算数加

sub

算数减

inc

递增操作

dec

递减操作

mul

无符号整数乘法。操作数必须是寄存器或内存单元

imul

有符号整数乘法。

div

无符号整数除法。操作数必须是寄存器或内存单元

idiv

有符号整数除法。操作数必须是寄存器或内存单元

and

逻辑与

or

逻辑或

not

逻辑非,使用反码非。与将所有的位单独取反效果相同

neg

非操作,使用补码(正的补码同原码,负的补码除符号位外取反加一)非。与乘以-1效果相同

xor

异或。一个寄存器和它自身进行异或通常被用来将该寄存器置为0

cmp

比较操作数(使用减法),并置上标志寄存器的相应位。操作数不会被修改

test

比较操作数的位(使用逻辑与),并置上标志寄存器的相应位,操作数不会被修改

jmp

无条件跳转

je

如果相等则跳转

jne

如果不等则跳转

loop

返回到循环的入口,视具体条件而定

nop

空操作,用来填充

int

引发中断,3号中断调用调试器,它经常被当作不会被调用的指令填充到程序中,从而成为一个特殊的空操作

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值