61 lines
2.3 KiB
C
61 lines
2.3 KiB
C
#ifndef ASSEMBLER_H
|
|
#define ASSEMBLER_H
|
|
|
|
typedef enum {
|
|
size_256b, size_128b, size_64b,
|
|
size_32b, size_16b, size_8b
|
|
} size_index;
|
|
|
|
typedef enum {
|
|
operation_move, operation_add, operation_subtract,
|
|
operation_multiply, operation_divide, operation_modulus,
|
|
operation_compare, operation_jump, operation_xor,
|
|
operation_and, operation_or, operation_not,
|
|
operation_is, operation_above, operation_below,
|
|
operation_if, operation_increment, operation_decrement,
|
|
operation_system, operation_call, operation_return,
|
|
operation_enter, operation_leave, operation_exit
|
|
} operation_index;
|
|
|
|
typedef enum {
|
|
operand_register, operand_memory, operand_immediate
|
|
} operand_index;
|
|
|
|
typedef enum {
|
|
operand_rax, operand_rcx, operand_rdx,
|
|
operand_rbx, operand_rsi, operand_rdi,
|
|
operand_rsp, operand_rbp, operand_r8,
|
|
operand_r9, operand_r10, operand_r11,
|
|
operand_r12, operand_r13, operand_r14,
|
|
operand_r15
|
|
} operand_64b_index;
|
|
|
|
typedef enum {
|
|
operand_eax, operand_ecx, operand_edx,
|
|
operand_ebx, operand_esi, operand_edi,
|
|
operand_esp, operand_ebp, operand_r8d,
|
|
operand_r9d, operand_r10d, operand_r11d,
|
|
operand_r12d, operand_r13d, operand_r14d,
|
|
operand_r15d
|
|
} operand_32b_index;
|
|
|
|
typedef enum {
|
|
operand_ax, operand_cx, operand_dx,
|
|
operand_bx, operand_si, operand_di,
|
|
operand_sp, operand_bp, operand_r8w,
|
|
operand_r9w, operand_r10w, operand_r11w,
|
|
operand_r12w, operand_r13w, operand_r14w,
|
|
operand_r15w
|
|
} operand_16b_index;
|
|
|
|
typedef enum {
|
|
operand_al, operand_cl, operand_dl,
|
|
operand_bl, operand_sil, operand_dil,
|
|
operand_spl, operand_bpl, operand_r8b,
|
|
operand_r9b, operand_r10b, operand_r11b,
|
|
operand_r12b, operand_r13b, operand_r14b,
|
|
operand_r15b
|
|
} operand_8b_index;
|
|
|
|
#endif
|