常用汇编指令:
MOV,例子:MOV EAX,ECX 将ECX的值存入EAX,等同于EAX=ECX
ADD , 例子:ADD EAX,ECX 将EAX的值加上ECX的值,等同于EAX+=ECX
SUB , 例子:SUB EAX,ECX 将EAX的值减去ECX的值,等同于EAX-=ECX
INC , 例子:INC EAX,将EAX的值+1,等于EAX=EAX+1
DEC , 例子:DEC EAX,将EAX的值-1,等于EAX=EAX-1
LEA , 例子:LEA EAX,[ECX+4] ,将ECX的值+4存入EAX,等于 EAX=ECX+4
CMP , 例子:CMP EAX,ECX ,进行比较并根据结果设置标志,若两者相同,则ZF=1;否则为0
TEST , 例子:TEST EAX,EAX,将值与0进行比较根据结果设置标志,若为0,则ZF=1;否则为0。
大多数情况下,TEST指令都会跟着两个相同的寄存器名称,可以简单的理解为,若寄存器的值为0,则将ZF置为1
JE(JZ) ,例子 JE 04001111 ,若 ZF=1,则跳转到04001111
JNE(JNZ) , 例子 JNE 04001111,若ZF=0,则跳转到04001111
结合TEST指令,就是若EAX=1,则跳转,否则不跳转
JMP , 例子 JMP 04001111 ,无条件跳转到04001111
CALL ,例子 CALL FUNCTION,调用FUNCTION
PUSH ,例子 PUSH 04001111, 将04001111 入栈
POP ,例子 POP EAX ,出栈并将获取的值存入EAX