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