Newer
Older
emul / emul_inst_decipher.h
#ifndef EMUL_INST_DECIPHER__
#define EMUL_INST_DECIPHER__

#include "emul_inst_isa.h"
#include "emul_reg.h"

#define LOAD_LINE_MAX 1024
#define LOAD_TOKEN_MAX 32

typedef struct {
    EMUL_ISA opecode;
    char string[32];
} emul_isa_t;

typedef struct {
    EMUL_REG operand;
    char string[32];
} emul_reg_t;

void emul_inst_dec_init();

int emul_inst_dec_load(char *filename);

void emul_inst_dec_close();

int emul_inst_dec_get_token(char *token);

// Example:
//   ASM: add St0, Ss0, Ss1
//   RETURN: add
int emul_inst_dec_get_opecode(char *);

int emul_inst_dec_get_next_opecode();

// Example:
//   ASM: add St0, Ss0, Ss1
//   RETURN: St0
//   RETURN: Ss0
//   RETURN: Ss1
int emul_inst_dec_get_operand(char *);

int emul_inst_dec_get_next_operand();

#endif