#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