49 lines
2.0 KiB
C
49 lines
2.0 KiB
C
#ifndef ASSEMBLER_H
|
|
#define ASSEMBLER_H
|
|
|
|
#include <stdlib.h>
|
|
|
|
typedef enum {
|
|
D64, D32, D16, D8,
|
|
} size_index;
|
|
|
|
typedef enum {
|
|
NIL, REG, MEM, IMM,
|
|
} type_index;
|
|
|
|
typedef enum {
|
|
ADD, OR, ADC, SBB,
|
|
AND, SUB, XOR, CMP,
|
|
MUL, DIV, IMUL, IDIV,
|
|
INC, DEC, NOT, NEG,
|
|
ENTER, LEAVE, CALL, RET,
|
|
SYSENTER, SYSEXIT, SYSCALL, SYSRET,
|
|
JMP, JPE, JS, JPO,
|
|
JE, JNE, JZ, JNZ,
|
|
JA, JNA, JB, JNB,
|
|
MOV, CMOVPE, CMOVS, CMOVPO,
|
|
CMOVE, CMOVNE, CMOVZ, CMOVNZ,
|
|
CMOVA, CMOVNA, CMOVB, CMOVNB,
|
|
LOCK, HLT, IN, OUT,
|
|
PUSH, POP, BSWAP, TEST,
|
|
RCL, RCR, ROL, ROR,
|
|
SHL, SHR, SAL, SAR,
|
|
REP, REPE, REPNE, REPZ,
|
|
LOOP, LOOPE, LOOPNE, PAUSE,
|
|
XADD, XCHG, LEA, POPCNT,
|
|
INT, BSF, BSR, BOUND,
|
|
FADD, FSUB, FMUL, FDIV,
|
|
FNOP, FXAM, FABS, FSCALE,
|
|
FSIN, FCOS, FSQRT, FCHS,
|
|
FXCH, FREM, FLDPI, FLDZ,
|
|
} operation_index;
|
|
|
|
typedef enum {
|
|
R0, R1, R2, R3,
|
|
R4, R5, R6, R7,
|
|
R8, R9, R10, R11,
|
|
R12, R13, R14, R15,
|
|
} operand_index;
|
|
|
|
#endif
|