汇编常用指令(持续更新)
-
- 逻辑与指令:
- and dest,src将目标与源做与操作
- or dest,src将目标与源做或操作
- add 加得数的值超出范围即会溢出
- inc 汇编语言中的自增指令,相当于++
- div指令
- 不会给出被除数
- 切记提前在默认的寄存器中设置好被除数,且默认寄存器不做别的用处
- 不会给出被除数
- dup设置内存空间,与db、dw、dd等数据定义伪指令配合使用,进行数据的重复
- nop的机器码占一个字节,器占位作用,为空
- jmp指令——无条件转移
- 可以只修改IP,也可以同时修改CS和IP
- 需给出信息
- 转移的目的地址
- 转移的距离
- 短转移 jmp short 标号
- 功能:(ip)=(ip)+八位位移
- 原理
- 注意位移的范围,避免转移位移超界
- 功能:(ip)=(ip)+八位位移
- 近转移 jmp near ptr 标号
- 相比于短转移仅是将八位位移转变为16位位移
- 指明了相对于当前IP的转移位移
- 相比于短转移仅是将八位位移转变为16位位移
- 远转移 jmp far ptr 标号
- 指明了跳转到的目的地址,即包含了标号的段地址cs和偏移地址IP
- 指明了跳转到的目的地址,即包含了标号的段地址cs和偏移地址IP
- jmp 16位寄存器
- IP =(16位寄存器)
- IP =(16位寄存器)
- 转移地址在内存中的jmp指令
- 转移的目的地址
- 可以只修改IP,也可以同时修改CS和IP
- jcxz 有条件转移指令(短转移)
- jcxz 标号(包含转移的位移)
- (cx)= 0,则转移到标号处执行
- (cx)!= 0,什么都不做
- (cx)= 0,则转移到标号处执行
- jcxz 标号(包含转移的位移)
- loop循环
- CX存放循环次数
- call指令和ret指令
- call 标号
- 可以跳转到指定的位置,相当于C语言中的go语句
- 调用子程序
- call far ptr 标号
- 实现段间转移
- 操作
- 实现段间转移
- call 16位寄存器
- call word ptr 内存单元地址
- call dword ptr 内存单元地址
- 高地址放段地址,低地址放偏移地址
- 高地址放段地址,低地址放偏移地址
- 可以跳转到指定的位置,相当于C语言中的go语句
- ret指令
- 与call指令相结合,在call跳转到指定位置执行语句后,加上ret即会返回到call指令的下一条语句
- 相当于pop IP
- 也可单独使用
- 与call指令相结合,在call跳转到指定位置执行语句后,加上ret即会返回到call指令的下一条语句
- retf:用栈中数据修改CS和IP的内容
- 相当于pop IP pop CS
- 相当于pop IP pop CS
- call 标号
- mul 指令做乘法
- 被乘数同样默认存放
- 格式
- mul 寄存器
- mul 内存单元
- mul 寄存器
- 乘法指令
- 被乘数同样默认存放
- adc-带进位加法指令
- 利用了CF上记录的进位值
- adc 操作对象1,操作对象2
- 功能: 操作对象1=操作对象1+操作对象2+CF
- 功能: 操作对象1=操作对象1+操作对象2+CF
- 利用了CF上记录的进位值
- sbb-带借位减法指令
- sbb 操作对象1,操作对象2
- 功能: 操作对象1=操作对象1-操作对象2-CF
- 功能: 操作对象1=操作对象1-操作对象2-CF
- sbb 操作对象1,操作对象2
- cmp 比较指令
- cmp 操作对象1,操作对象2
- 功能:计算操作对象1-操作对象2
- 会影响标志寄存器的值,并不在操作对象中储存,不保存结果
- 当为有符号数时,还要记住将SF与OF结合判断结果
- cmp 操作对象1,操作对象2
- 条件转移指令(一般与可以影响标志寄存器的指令一起使用)
- 指令缩写含义
- 形式:jxxx 标号
- 根据单个标志位
- 根据无符号数比较结果
- 根据单个标志位
- 实质就是修改IP
- rep指令(常和串传送指令搭配使用)
- 根据cx的值,重复执行后面的指令
- 根据cx的值,重复执行后面的指令
- 移位指令
- 移动位数大于1时,必须用cl
- 逻辑左移 shl 寄存器 移位大小,最高位移至CF,后面补零
- 循环左移 rol 寄存器 移位大小
- 逻辑右移 shr opr,cnt
- 循环右移 ror opr,cnt
- 算术左移 sal opr,cnt
- 算术右移 sar opr,cnt 最高位不会发生变化
- 带进位循环左移 rcl opr,cnt
- 带进位循环右移 rcr opr,cnt
- 移动位数大于1时,必须用cl
- and dest,src将目标与源做与操作
- 逻辑与指令: