/* * 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(unsigned int codeToCopy[], int size, struct program program){ program.program = codeToCopy; *program.size = size; } void printProgram(struct program program){ printf("%i\n",*program.size); 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); printf("afslaf"); } } #endif /* ifndef PROGRAMM */