X86汇编学习笔记

目录

常用的X86汇编指令

指令 示例 含义 说明
MOV MOV EAX,ECX EAX=ECX 将ECX的值存入EAX
ADD ADD EAX,ECX EAX+=ECX 将EAX的值加上ECX
SUB SUB EAX,ECX EAX-=ECX 将EAX的值减去ECX
INC INC EAX EAX++ 将EAX的值+1
DEC DEC EAX EAX– 将EAX的值-1
LEA LEA EAX,[ECX+4] EAX=ECX+4 将ECX+4的值存入EAX

CMP

CMP EAX,ECX
if(EAX==ECX)
ZF=1
else
ZF=0

将两个值进行比较,并根据结果设置0标志位ZF

TEST

TEST EAX,EAX
if(EAX==0)
ZF=1
else
ZF=0

将值与0进行比较并根据结果设置0标志位ZF
JE(JZ) JE 04001000 if(ZF==1)
GOTO 04001000
若ZF=1,则跳转到04001000
JNE(JNZ) JNE 04001000 if(ZF==0)
GOTO 04001000
若ZF=0,则跳转到04001000
JMP JMP 04001000 GOTO 04001000 无条件跳转到04001000
CALL CALL lstrcmpW   调出lstrcmpW函数
PUSH PUSH 00000001   将00000001入栈
POP POP EAX   出栈并将获取的值存入EAX