41 lines
1.4 KiB
C
41 lines
1.4 KiB
C
#ifndef ASSEMBLER_H
|
|
#define ASSEMBLER_H
|
|
|
|
#include <stdlib.h>
|
|
|
|
typedef enum {
|
|
SIZE_256B, SIZE_128B, SIZE_64B,
|
|
SIZE_32B, SIZE_16B, SIZE_8B,
|
|
} size_index;
|
|
|
|
typedef enum {
|
|
TYPE_REGISTER, TYPE_VARIABLE, TYPE_CONSTANT,
|
|
} type_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_ADD_F, OPERATION_SUBTRACT_F,
|
|
} operation_index;
|
|
|
|
typedef enum {
|
|
OPERAND_REGISTER_0, OPERAND_REGISTER_1, OPERAND_REGISTER_2,
|
|
OPERAND_REGISTER_3, OPERAND_REGISTER_4, OPERAND_REGISTER_5,
|
|
OPERAND_REGISTER_6, OPERAND_REGISTER_7, OPERAND_REGISTER_8,
|
|
OPERAND_REGISTER_9, OPERAND_REGISTER_A, OPERAND_REGISTER_B,
|
|
OPERAND_REGISTER_C, OPERAND_REGISTER_D, OPERAND_REGISTER_E,
|
|
OPERAND_REGISTER_F, OPERAND_REFERENCE, OPERAND_DEREFERENCE,
|
|
} operand_index;
|
|
|
|
typedef signed int form;
|
|
typedef unsigned int next;
|
|
typedef unsigned char byte;
|
|
|
|
#endif
|