68 lines
1.3 KiB
C
68 lines
1.3 KiB
C
/*
|
|
* Created by Nils on 30.10.2023.
|
|
*/
|
|
#ifndef PROGRAM
|
|
#define PROGRAM
|
|
#include <string.h>
|
|
#include "instruktion.c"
|
|
#include <stdio.h>
|
|
|
|
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 */
|