orginized projekt
This commit is contained in:
parent
d947afdf03
commit
4e629a6ca7
38
code.c
Normal file
38
code.c
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#define code
|
||||||
|
|
||||||
|
#ifndef instruktion
|
||||||
|
#include "instruktion.c"
|
||||||
|
#endif /* ifndef instruktion */
|
||||||
|
|
||||||
|
unsigned int code1[] = {
|
||||||
|
(PUSHC << 24) | IMMEDIATE(3),
|
||||||
|
(PUSHC << 24) | IMMEDIATE(4),
|
||||||
|
(ADD << 24),
|
||||||
|
(PUSHC << 24) | IMMEDIATE(10),
|
||||||
|
(PUSHC << 24) | IMMEDIATE(6),
|
||||||
|
(SUB << 24),
|
||||||
|
(MUL << 24),
|
||||||
|
(WRINT << 24),
|
||||||
|
(PUSHC << 24) | IMMEDIATE(10),
|
||||||
|
(WRCHR << 24),
|
||||||
|
(HALT)
|
||||||
|
};
|
||||||
|
unsigned int code2[] = {
|
||||||
|
(PUSHC << 24) | IMMEDIATE(-2),
|
||||||
|
(RDINT << 24),
|
||||||
|
(MUL << 24),
|
||||||
|
(PUSHC << 24) | IMMEDIATE(3),
|
||||||
|
(ADD << 24),
|
||||||
|
(WRINT << 24),
|
||||||
|
(PUSHC << 24) | IMMEDIATE('\n'),
|
||||||
|
(WRCHR << 24),
|
||||||
|
(HALT << 24)
|
||||||
|
};
|
||||||
|
unsigned int code3[] = {
|
||||||
|
(RDCHR << 24),
|
||||||
|
(WRINT << 24),
|
||||||
|
(PUSHC << 24) | IMMEDIATE('\n'),
|
||||||
|
(WRCHR << 24),
|
||||||
|
(HALT << 24)
|
||||||
|
};
|
||||||
|
|
||||||
15
instruktion.c
Normal file
15
instruktion.c
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#define instruktion
|
||||||
|
|
||||||
|
#define IMMEDIATE(x) ((x) & 0x00FFFFFF)
|
||||||
|
|
||||||
|
#define HALT 0
|
||||||
|
#define PUSHC 1
|
||||||
|
#define ADD 2
|
||||||
|
#define SUB 3
|
||||||
|
#define MUL 4
|
||||||
|
#define DIV 5
|
||||||
|
#define MOD 6
|
||||||
|
#define RDINT 7
|
||||||
|
#define WRINT 8
|
||||||
|
#define RDCHR 9
|
||||||
|
#define WRCHR 10
|
||||||
62
njvm.c
62
njvm.c
@ -1,66 +1,27 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#ifndef instruktion
|
||||||
|
#include "instruktion.c"
|
||||||
|
#endif /* ifndef instruktion */
|
||||||
|
#ifndef code
|
||||||
|
#include "code.c"
|
||||||
|
#endif /* ifndef code */
|
||||||
|
|
||||||
|
|
||||||
//Comment to disable debug
|
//Comment to disable debug
|
||||||
|
|
||||||
#define DEBUG
|
#define DEBUG
|
||||||
|
|
||||||
#define IMMEDIATE(x) ((x) & 0x00FFFFFF)
|
|
||||||
|
|
||||||
#define HALT 0
|
|
||||||
#define PUSHC 1
|
|
||||||
#define ADD 2
|
|
||||||
#define SUB 3
|
|
||||||
#define MUL 4
|
|
||||||
#define DIV 5
|
|
||||||
#define MOD 6
|
|
||||||
#define RDINT 7
|
|
||||||
#define WRINT 8
|
|
||||||
#define RDCHR 9
|
|
||||||
#define WRCHR 10
|
|
||||||
|
|
||||||
|
|
||||||
unsigned int programmSpeicher[1000];
|
unsigned int programmSpeicher[1000];
|
||||||
|
|
||||||
unsigned int code1[] = {
|
|
||||||
(PUSHC << 24) | IMMEDIATE(3),
|
|
||||||
(PUSHC << 24) | IMMEDIATE(4),
|
|
||||||
(ADD << 24),
|
|
||||||
(PUSHC << 24) | IMMEDIATE(10),
|
|
||||||
(PUSHC << 24) | IMMEDIATE(6),
|
|
||||||
(SUB << 24),
|
|
||||||
(MUL << 24),
|
|
||||||
(WRINT << 24),
|
|
||||||
(PUSHC << 24) | IMMEDIATE(10),
|
|
||||||
(WRCHR << 24),
|
|
||||||
(HALT)
|
|
||||||
};
|
|
||||||
unsigned int code2[] = {
|
|
||||||
(PUSHC << 24) | IMMEDIATE(-2),
|
|
||||||
(RDINT << 24),
|
|
||||||
(MUL << 24),
|
|
||||||
(PUSHC << 24) | IMMEDIATE(3),
|
|
||||||
(ADD << 24),
|
|
||||||
(WRINT << 24),
|
|
||||||
(PUSHC << 24) | IMMEDIATE('\n'),
|
|
||||||
(WRCHR << 24),
|
|
||||||
(HALT << 24)
|
|
||||||
};
|
|
||||||
unsigned int code3[] = {
|
|
||||||
(RDCHR << 24),
|
|
||||||
(WRINT << 24),
|
|
||||||
(PUSHC << 24) | IMMEDIATE('\n'),
|
|
||||||
(WRCHR << 24),
|
|
||||||
(HALT << 24)
|
|
||||||
};
|
|
||||||
|
|
||||||
void copyToProgramm(unsigned int codeToCopy[]){
|
void copyToProgramm(const unsigned int codeToCopy[], int length){
|
||||||
int size = sizeof(codeToCopy)/sizeof(codeToCopy[0]);
|
for (int i = 0; i < length; i++) {
|
||||||
for (int i = 0; i < size; i++) {
|
programmSpeicher[i] = codeToCopy[i];
|
||||||
printf("Test\n");
|
|
||||||
}
|
}
|
||||||
printf("%i",size);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Stack
|
// Stack
|
||||||
@ -171,7 +132,8 @@ void printStack(void){
|
|||||||
|
|
||||||
void tests(void){
|
void tests(void){
|
||||||
printf("Runnig debug mode\n");
|
printf("Runnig debug mode\n");
|
||||||
copyToProgramm(code1);
|
copyToProgramm(code1,sizeof(code1)/sizeof(code1[0]));
|
||||||
|
execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* ifdef DEBUG */
|
#endif /* ifdef DEBUG */
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user