提醒
作者指出此处以通俗易懂为主,相应的失去了准确性,如需深入了解,务必深入查询
指令 | 示例 | 含义 | 说明 |
---|---|---|---|
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 |
对两个值进行比较病根据结果设 置标志 若EAX与ECX相同,则ZF=1 若EAX与ECX不相同,则ZF=0 |
TEST | TEST EAX,EAX | if(EAX == 0) ZF=1 else ZF=0 |
将值与0进行比较并根据结果设 置标志 若EAX为0,则ZF=1 若EAX不为0,则ZF=0 |
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 |