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 <string.h>
|
||||
#include <stdlib.h>
|
||||
#ifndef instruktion
|
||||
#include "instruktion.c"
|
||||
#endif /* ifndef instruktion */
|
||||
#ifndef code
|
||||
#include "code.c"
|
||||
#endif /* ifndef code */
|
||||
|
||||
|
||||
//Comment to disable 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 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[]){
|
||||
int size = sizeof(codeToCopy)/sizeof(codeToCopy[0]);
|
||||
for (int i = 0; i < size; i++) {
|
||||
printf("Test\n");
|
||||
void copyToProgramm(const unsigned int codeToCopy[], int length){
|
||||
for (int i = 0; i < length; i++) {
|
||||
programmSpeicher[i] = codeToCopy[i];
|
||||
}
|
||||
printf("%i",size);
|
||||
}
|
||||
|
||||
// Stack
|
||||
@ -171,7 +132,8 @@ void printStack(void){
|
||||
|
||||
void tests(void){
|
||||
printf("Runnig debug mode\n");
|
||||
copyToProgramm(code1);
|
||||
copyToProgramm(code1,sizeof(code1)/sizeof(code1[0]));
|
||||
execute();
|
||||
}
|
||||
|
||||
#endif /* ifdef DEBUG */
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user