#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include <inttypes.h>

/* Assemble le code assembleur de `fp_in` et produit de l'hexa dans `fp_out`.
   - fp_in: Fichier source (ouvert en lecture)
   - fp_out: Fichier hexadécimal (ouvert en écriture) */
void assemble(FILE *fp_in, FILE *fp_out);

/* Données pour une instruction lue depuis le fichier assembleur. */
struct instruction {
    char name[16];
    int args[3];
};

/* Encode une instruction (modifie les paramètres en cas d'alias). */
uint32_t encode(struct instruction *insn);
