From c325e645f38a15012a22a1f900c7c5be0637975f Mon Sep 17 00:00:00 2001 From: nova Date: Wed, 1 May 2024 22:30:44 +0200 Subject: [PATCH] small changes to the asm itself --- asm_rules.c | 51 +++++++++++++++++++++++++-------------------------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/asm_rules.c b/asm_rules.c index 8050698..87a0d57 100644 --- a/asm_rules.c +++ b/asm_rules.c @@ -3,11 +3,11 @@ #include void trit_flip(char *in, char *instruction) { - for (int i = 0; i<(sizeof(in)/sizeof(in[0])); i++) { + for (int i = 0; i<27; i++) { in[i] = instruction[i]; } } -int asm_rules(char *in, char _asm[27]){ +int asm_rules(char *in, char *_asm){ for (int i = 0; i < 27; i++) { _asm[i] = 0; @@ -23,53 +23,52 @@ int asm_rules(char *in, char _asm[27]){ //comments break; } else { - if(word[0] == 'i') { - //integer - _asm[7] = '0'; - } else if(word[0] == 'f') { - //floating - _asm[7] = '-'; - } - if (word[0] == '$' || word[0] == '@') { - //cases make larger checks harder to read - } else if (strstr(word, "max")) { - trit_flip(_asm, "+00000+000000"); + if (strstr(word, "max")) { + trit_flip(_asm, "000000+00000+"); } else if (strstr(word, "min")) { - trit_flip(_asm, "-00000+000000"); + trit_flip(_asm, "000000+00000-"); } else if (strstr(word, "any")) { trit_flip(_asm, "000000+000000"); } else if (strstr(word, "cons")) { - trit_flip(_asm, "-+0000+000000"); + trit_flip(_asm, "000000+0000+-"); } else if (strstr(word, "add")) { - trit_flip(_asm, "+-+000+000000"); + trit_flip(_asm, "000000+000+-+"); } else if (strstr(word, "sub")) { - trit_flip(_asm, "+--000+000000"); + trit_flip(_asm, "000000+000--+"); } else if (strstr(word, "mul")) { - trit_flip(_asm, "+0+000+000000"); + trit_flip(_asm, "000000+000+0+"); } else if (strstr(word, "div")) { - trit_flip(_asm, "+0-000+000000"); + trit_flip(_asm, "000000+000+0-"); } else if (strstr(word, "dec")) { - trit_flip(_asm, "--0000+000000"); + trit_flip(_asm, "000000+0000--"); } else if (strstr(word, "inc")) { - trit_flip(_asm, "-+0000+000000"); + trit_flip(_asm, "000000+0000+-"); } else if (strstr(word, "iou")) { - trit_flip(_asm, "--0000-000000"); + trit_flip(_asm, "000000-0000--"); } else if (strstr(word, "ieq")) { - trit_flip(_asm, "+-0000-000000"); + trit_flip(_asm, "000000-0000-+"); } else if (strstr(word, "jmp")) { trit_flip(_asm, "000000-000000"); } else if (strstr(word, "jec")) { - trit_flip(_asm, "+00000-000000"); + trit_flip(_asm, "000000-00000+"); } else if (strstr(word, "mov")) { - trit_flip(_asm, "+000000000000"); + trit_flip(_asm, "000000000000+"); } else if (strstr(word, "Nst")) { //underflow test trit_flip(_asm, "-------------"); } else if (strstr(word, "Pst")) { //overflow test trit_flip(_asm, "+++++++++++++"); } + if(word[0] == 'i') { + //integer + _asm[5] = '0'; + } else if(word[0] == 'f') { + //floating + _asm[5] = '-'; + } + if (word[0] == '$' || word[0] == '@') { - + } }