常用的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 |