#include char* disassemble(uint32_t opcode); struct label_ll_t{ char* name; uint32_t address; struct label_ll_t *next; }; struct assembler_context_t{ struct label_ll_t *label_ll; uint32_t current_location; }; uint32_t assemble_line(char *line, struct assembler_context_t *assembler_context); int assembler_context_process(char* line,struct assembler_context_t *tofree); struct assembler_context_t *malloc_assembler_context(); void free_assembler_context(struct assembler_context_t *assembler_context);