汇编语言

前言:一点点简单的汇编语言,简单的可以看懂,后面可能还会补充

目录

数据传送指令

算数运算指令

逻辑运算和位移指令

串操作指令

 控制转移指令

处理器控制指令


数据传送指令

MOV:把源操作数传送到目的操作数

MOVSX:带符号扩展传送

MOVZX:带零扩展传送

MOV EAX, EDX;寄存器EDX->EAX的数据传送

MOVSX EAX, BL;将80H扩张为FFFFFF80H后送EAX中

MOVZX AX, BL;将80H 扩张为0080H后送AX中

push:操作数进栈

pop:出栈到目的操作数,把当前的SP所指向的堆栈顶部的一个字送到指定的目的操作数

还有POPA(处理十六位寄存器)和POPAD(处理三十二位寄存器)

PUSHF:16位标志寄存器进栈

PUSHFD:32位标志寄存器进栈

POPF16位标志寄存器出栈

POPFD:位标志寄存器出栈

XCHG:交换两操作数。允许通用寄存器之间,通用寄存器和存储器之间交换数据

LEA:将源操作数的有效地址传送到通用寄存器

LEA EAX, [EBP+var_cc];将EBP+var_cc的值送入EAX

MOV EAX,[EBP+var_cc];将存储在地址EBP+var_cc上的变量值送入EAX

算数运算指令

加法指令

ADD:将源操作数和目的操作数相加,结果送到目的操作数

ADC:将源操作数与目的操作数一以及CF的值相加,结果传送到目的操作数

INC:目的操作数加一,结果送入目的操作数

减法指令

SUB:将目的操作数减去原操作数,结果送入目的操作数

SBB:将目的操作数减去源操作数,再减去CF值结果送入目的操作数

DEC:目的操作数减一,结果送入目的操作数

除法指令

DIV:无符号除法指令

IDI:有符号除法指令

乘法指令

MUL:无符号数乘法指令,将源操作数和累加器中的目的操作数相乘,结果送入累加器中

IMUL:有符号数乘法指令,将源操作数和累加器中的目的操作数相乘,结果送入累加器中

逻辑运算和位移指令

逻辑运算

AND:与

OR:或

XOR:异或

TEST:目的操作数与源操作数按位进行逻辑与操作,并修改标志位,结果不回送目的操作数

常用于检测某些条件是否满足,但又不希望改变原有操作数的情况下

TEST ECX,ECX

JE Crackme,00401326;程序跳转到0x00401326处继续执行

算术逻辑移位

SAR:算数右移(最高位不变)

SHR:逻辑右移(最高位补零)

串操作指令

 控制转移指令

 REP:循环控制指令

处理器控制指令

NOP:空操作指令(去除花指令的时候用的多 机器码0x90)

INYn:中断指令

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值