/* * Created by Nils on 30.10.2023. */ #ifndef PROGRAM #define PROGRAM #include #include "instruktion.c" #include struct program { int *size; unsigned int *program; }; void copyToProgram(const unsigned int codeToCopy[], int size, struct program program) { for (int i = 0; i < size; ++i) { program.program[i] = codeToCopy[i]; } *program.size = size; } void printProgram(struct program program) { char c[10]; for (int i = 0; i < *program.size; i++) { switch (program.program[i] >> 24) { case PUSHC: strcpy(c, "pushc"); break; case ADD: strcpy(c, "add"); break; case SUB: strcpy(c, "sub"); break; case MUL: strcpy(c, "mul"); break; case DIV: strcpy(c, "div"); break; case MOD: strcpy(c, "mod"); break; case RDINT: strcpy(c, "rdint"); break; case WRINT: strcpy(c, "wrint"); break; case RDCHR: strcpy(c, "rdchr"); break; case WRCHR: strcpy(c, "wrchr"); break; case HALT: strcpy(c, "halt"); break; default: strcpy(c, "ERROR"); break; } IMMEDIATE(program.program[i]) ? printf("%03i:\t%s\t%i\n", i, c, IMMEDIATE(program.program[i])) : printf( "%03i:\t%s\n", i, c); } } #endif /* ifndef PROGRAMM */