汇编语言中常用的指令
2017-06-08 01:51
288 查看
1、堆栈相关指令
push:把一个32位的操作数压入堆栈中。这个操作导致esp被减4。esp被形象地称为栈顶。我们认为顶部是地址小的区域,那么,压入堆栈的数据越多,这个堆栈也就越堆越高,esp也就越来越小。在32位平台上,esp每次减少4(字节)。
pop:相反,esp被加4,一个数据出栈。pop的参数一般是一个寄存器,栈顶的数据被弹出到这个寄存器中。
sub:减法。第一个参数是被减数所在的寄存器;第二个参数是减数。(对应的还有add指令。)
add:加法。
ret:返回。相当于跳转回调用函数的地方。(对应的call指令来调用函数,返回到call之后的下一条指令。)(本质相当于pop+jmp)
call:调用函数。(本质相当于push+jmp)
2、数据传送指令
mov:数据移动。第一个参数是目的,第二个参数是来源。在C语言中相当于赋值号。
xor:异或。这虽然是逻辑运算的指令,但是有趣的是,xor eax,eax这样的操作常常用来代替mov eax,0。好处是速度更快,占用字节数更少。(见到xor eax,eax,应该马上明白这是清零操作。)
lea:取得地址(第二个参数)后放入到前面的寄存器(第一个参数)中。(mov不支持后一个操作数写成寄存器减去数字,但是lea支持,所以可以用lea来代替它。)=load effective address
load
effective
addres
load
effective
addres
load
effective
addres
load
effective
addres
stos:看如下例子
mov ecx,30h
mov eax,0CCCCCCCCh
rep stos dword ptr es:[edi]
stos是串存储指令,它的功能是将eax中的数据放入edi所指的地址中,同时,edi会增加4(字节数)。rep使指令重复执行中填写的次数。方括弧表示存储器,这个地址实际上就是edi的内容所指向的地址。
3、跳转与比较指令
jmp:无条件跳转。
jg:大于的时候跳转。
jl:小于的时候跳转。
jge:大于等于的时候跳转。
cmp:比较。往往是jg、jl、jge、之类的条件跳转指令的执行条件。
push:把一个32位的操作数压入堆栈中。这个操作导致esp被减4。esp被形象地称为栈顶。我们认为顶部是地址小的区域,那么,压入堆栈的数据越多,这个堆栈也就越堆越高,esp也就越来越小。在32位平台上,esp每次减少4(字节)。
pop:相反,esp被加4,一个数据出栈。pop的参数一般是一个寄存器,栈顶的数据被弹出到这个寄存器中。
sub:减法。第一个参数是被减数所在的寄存器;第二个参数是减数。(对应的还有add指令。)
add:加法。
ret:返回。相当于跳转回调用函数的地方。(对应的call指令来调用函数,返回到call之后的下一条指令。)(本质相当于pop+jmp)
call:调用函数。(本质相当于push+jmp)
2、数据传送指令
mov:数据移动。第一个参数是目的,第二个参数是来源。在C语言中相当于赋值号。
xor:异或。这虽然是逻辑运算的指令,但是有趣的是,xor eax,eax这样的操作常常用来代替mov eax,0。好处是速度更快,占用字节数更少。(见到xor eax,eax,应该马上明白这是清零操作。)
lea:取得地址(第二个参数)后放入到前面的寄存器(第一个参数)中。(mov不支持后一个操作数写成寄存器减去数字,但是lea支持,所以可以用lea来代替它。)=load effective address
load
effective
addres
load
effective
addres
load
effective
addres
load
effective
addres
stos:看如下例子
mov ecx,30h
mov eax,0CCCCCCCCh
rep stos dword ptr es:[edi]
stos是串存储指令,它的功能是将eax中的数据放入edi所指的地址中,同时,edi会增加4(字节数)。rep使指令重复执行中填写的次数。方括弧表示存储器,这个地址实际上就是edi的内容所指向的地址。
3、跳转与比较指令
jmp:无条件跳转。
jg:大于的时候跳转。
jl:小于的时候跳转。
jge:大于等于的时候跳转。
cmp:比较。往往是jg、jl、jge、之类的条件跳转指令的执行条件。
![](https://imgsa.baidu.com/baike/c0%3Dbaike80%2C5%2C5%2C80%2C26/sign=36887799820a19d8df0e8c575293e9ee/a08b87d6277f9e2ffd3f33201d30e924b899f394.jpg)
相关文章推荐
- 汇编语言常用伪指令
- PIC8位单片机汇编语言常用指令的识读(上)
- 汇编语言七——常用指令(转载)
- 汇编语言常用指令
- PIC8位单片机汇编语言常用指令的识读(中)
- PIC 8位单片机汇编语言常用指令
- 汇编语言中常用的伪指令
- 汇编语言中常用的伪指令
- 汇编语言中常用的伪指令
- 汇编语言常用指令
- 汇编语言常用指令
- PIC8位单片机汇编语言常用指令的识读(下)
- 汇编语言---常用伪指令
- 汇编语言基础教程-减法指令
- 汇编语言基础教程-指令:传送,交换,取地址
- 汇编常用指令
- 汇编语言基础教程-加法指令
- 汇编语言——80x86指令系统(二)
- 汇编语言 王爽 实验9 转移指令的原理
- 汇编语言学习--转移指令的原理