- { "push", OP_PUSH, OPC_DATA, 1, 1 },
- { "pop", OP_POP, OPC_DATA, 1, 1 },
- { "mov" , OP_MOV, OPC_DATA, 2, 2 },
- { "lea", OP_LEA, OPC_DATA, 2, 2 },
- { "movzx",OP_MOVZX, OPC_DATA, 2, 2 },
- { "movsx",OP_MOVSX, OPC_DATA, 2, 2 },
- { "not", OP_NOT, OPC_DATA, 1, 1 },
- { "add", OP_ADD, OPC_DATA_FLAGS, 2, 2 },
- { "sub", OP_SUB, OPC_DATA_FLAGS, 2, 2 },
- { "and", OP_AND, OPC_DATA_FLAGS, 2, 2 },
- { "or", OP_OR, OPC_DATA_FLAGS, 2, 2 },
- { "xor", OP_XOR, OPC_DATA_FLAGS, 2, 2 },
- { "shl", OP_SHL, OPC_DATA_FLAGS, 2, 2 },
- { "shr", OP_SHR, OPC_DATA_FLAGS, 2, 2 },
- { "sal", OP_SHL, OPC_DATA_FLAGS, 2, 2 },
- { "sar", OP_SAR, OPC_DATA_FLAGS, 2, 2 },
- { "sbb", OP_SBB, OPC_DATA_FLAGS, 2, 2 },
- { "inc", OP_INC, OPC_DATA_FLAGS, 1, 1 },
- { "dec", OP_DEC, OPC_DATA_FLAGS, 1, 1 },
- { "mul", OP_MUL, OPC_DATA_FLAGS, 1, 1 },
- { "imul", OP_IMUL, OPC_DATA_FLAGS, 1, 3 },
- { "test", OP_TEST, OPC_DATA_FLAGS, 2, 2 },
- { "cmp", OP_CMP, OPC_DATA_FLAGS, 2, 2 },
- { "retn", OP_RET, OPC_JMP, 0, 1 },
- { "call", OP_CALL, OPC_JMP, 1, 1 },
- { "jmp", OP_JMP, OPC_JMP, 1, 1 },
- { "jo", OP_JO, OPC_JCC, 1, 1 }, // 70 OF=1
- { "jno", OP_JNO, OPC_JCC, 1, 1 }, // 71 OF=0
- { "jc", OP_JC, OPC_JCC, 1, 1 }, // 72 CF=1
- { "jb", OP_JC, OPC_JCC, 1, 1 }, // 72
- { "jnc", OP_JNC, OPC_JCC, 1, 1 }, // 73 CF=0
- { "jae", OP_JNC, OPC_JCC, 1, 1 }, // 73
- { "jz", OP_JZ, OPC_JCC, 1, 1 }, // 74 ZF=1
- { "je", OP_JZ, OPC_JCC, 1, 1 }, // 74
- { "jnz", OP_JNZ, OPC_JCC, 1, 1 }, // 75 ZF=0
- { "jne", OP_JNZ, OPC_JCC, 1, 1 }, // 75
- { "jbe", OP_JBE, OPC_JCC, 1, 1 }, // 76 CF=1 || ZF=1
- { "jna", OP_JBE, OPC_JCC, 1, 1 }, // 76
- { "ja", OP_JA, OPC_JCC, 1, 1 }, // 77 CF=0 && ZF=0
- { "jnbe", OP_JA, OPC_JCC, 1, 1 }, // 77
- { "js", OP_JS, OPC_JCC, 1, 1 }, // 78 SF=1
- { "jns", OP_JNS, OPC_JCC, 1, 1 }, // 79 SF=0
- { "jp", OP_JP, OPC_JCC, 1, 1 }, // 7a PF=1
- { "jpe", OP_JP, OPC_JCC, 1, 1 }, // 7a
- { "jnp", OP_JNP, OPC_JCC, 1, 1 }, // 7b PF=0
- { "jpo", OP_JNP, OPC_JCC, 1, 1 }, // 7b
- { "jl", OP_JL, OPC_JCC, 1, 1 }, // 7c SF!=OF
- { "jnge", OP_JL, OPC_JCC, 1, 1 }, // 7c
- { "jge", OP_JGE, OPC_JCC, 1, 1 }, // 7d SF=OF
- { "jnl", OP_JGE, OPC_JCC, 1, 1 }, // 7d
- { "jle", OP_JLE, OPC_JCC, 1, 1 }, // 7e ZF=1 || SF!=OF
- { "jng", OP_JLE, OPC_JCC, 1, 1 }, // 7e
- { "jg", OP_JG, OPC_JCC, 1, 1 }, // 7f ZF=0 && SF=OF
- { "jnle", OP_JG, OPC_JCC, 1, 1 }, // 7f
- };
+ { "push", OP_PUSH, 1, 1, 0 },
+ { "pop", OP_POP, 1, 1, OPF_DATA },
+ { "mov" , OP_MOV, 2, 2, OPF_DATA },
+ { "lea", OP_LEA, 2, 2, OPF_DATA },
+ { "movzx",OP_MOVZX, 2, 2, OPF_DATA },
+ { "movsx",OP_MOVSX, 2, 2, OPF_DATA },
+ { "not", OP_NOT, 1, 1, OPF_DATA },
+ { "add", OP_ADD, 2, 2, OPF_DATA|OPF_FLAGS },
+ { "sub", OP_SUB, 2, 2, OPF_DATA|OPF_FLAGS },
+ { "and", OP_AND, 2, 2, OPF_DATA|OPF_FLAGS },
+ { "or", OP_OR, 2, 2, OPF_DATA|OPF_FLAGS },
+ { "xor", OP_XOR, 2, 2, OPF_DATA|OPF_FLAGS },
+ { "shl", OP_SHL, 2, 2, OPF_DATA|OPF_FLAGS },
+ { "shr", OP_SHR, 2, 2, OPF_DATA|OPF_FLAGS },
+ { "sal", OP_SHL, 2, 2, OPF_DATA|OPF_FLAGS },
+ { "sar", OP_SAR, 2, 2, OPF_DATA|OPF_FLAGS },
+// { "adc", OP_ADC, 2, 2, OPF_DATA|OPF_FLAGS|OPF_CC },
+ { "sbb", OP_SBB, 2, 2, OPF_DATA|OPF_FLAGS|OPF_CC },
+ { "inc", OP_INC, 1, 1, OPF_DATA|OPF_FLAGS },
+ { "dec", OP_DEC, 1, 1, OPF_DATA|OPF_FLAGS },
+// { "mul", OP_MUL, 1, 1, OPF_DATA|OPF_FLAGS },
+ { "imul", OP_IMUL, 1, 3, OPF_DATA|OPF_FLAGS },
+ { "test", OP_TEST, 2, 2, OPF_FLAGS },
+ { "cmp", OP_CMP, 2, 2, OPF_FLAGS },
+ { "retn", OP_RET, 0, 1, OPF_JMP },
+ { "call", OP_CALL, 1, 1, OPF_JMP },
+ { "jmp", OP_JMP, 1, 1, OPF_JMP },
+ { "jo", OP_JO, 1, 1, OPF_JMP|OPF_CC }, // 70 OF=1
+ { "jno", OP_JNO, 1, 1, OPF_JMP|OPF_CC }, // 71 OF=0
+ { "jc", OP_JC, 1, 1, OPF_JMP|OPF_CC }, // 72 CF=1
+ { "jb", OP_JC, 1, 1, OPF_JMP|OPF_CC }, // 72
+ { "jnc", OP_JNC, 1, 1, OPF_JMP|OPF_CC }, // 73 CF=0
+ { "jae", OP_JNC, 1, 1, OPF_JMP|OPF_CC }, // 73
+ { "jz", OP_JZ, 1, 1, OPF_JMP|OPF_CC }, // 74 ZF=1
+ { "je", OP_JZ, 1, 1, OPF_JMP|OPF_CC }, // 74
+ { "jnz", OP_JNZ, 1, 1, OPF_JMP|OPF_CC }, // 75 ZF=0
+ { "jne", OP_JNZ, 1, 1, OPF_JMP|OPF_CC }, // 75
+ { "jbe", OP_JBE, 1, 1, OPF_JMP|OPF_CC }, // 76 CF=1 || ZF=1
+ { "jna", OP_JBE, 1, 1, OPF_JMP|OPF_CC }, // 76
+ { "ja", OP_JA, 1, 1, OPF_JMP|OPF_CC }, // 77 CF=0 && ZF=0
+ { "jnbe", OP_JA, 1, 1, OPF_JMP|OPF_CC }, // 77
+ { "js", OP_JS, 1, 1, OPF_JMP|OPF_CC }, // 78 SF=1
+ { "jns", OP_JNS, 1, 1, OPF_JMP|OPF_CC }, // 79 SF=0
+ { "jp", OP_JP, 1, 1, OPF_JMP|OPF_CC }, // 7a PF=1
+ { "jpe", OP_JP, 1, 1, OPF_JMP|OPF_CC }, // 7a
+ { "jnp", OP_JNP, 1, 1, OPF_JMP|OPF_CC }, // 7b PF=0
+ { "jpo", OP_JNP, 1, 1, OPF_JMP|OPF_CC }, // 7b
+ { "jl", OP_JL, 1, 1, OPF_JMP|OPF_CC }, // 7c SF!=OF
+ { "jnge", OP_JL, 1, 1, OPF_JMP|OPF_CC }, // 7c
+ { "jge", OP_JGE, 1, 1, OPF_JMP|OPF_CC }, // 7d SF=OF
+ { "jnl", OP_JGE, 1, 1, OPF_JMP|OPF_CC }, // 7d
+ { "jle", OP_JLE, 1, 1, OPF_JMP|OPF_CC }, // 7e ZF=1 || SF!=OF
+ { "jng", OP_JLE, 1, 1, OPF_JMP|OPF_CC }, // 7e
+ { "jg", OP_JG, 1, 1, OPF_JMP|OPF_CC }, // 7f ZF=0 && SF=OF
+ { "jnle", OP_JG, 1, 1, OPF_JMP|OPF_CC }, // 7f
+};