From a6475f35007fbf2f5d65c53c54613267debe49b1 Mon Sep 17 00:00:00 2001 From: Giulio De Pasquale Date: Thu, 25 May 2017 16:43:56 +0200 Subject: [PATCH] Sistemato assembling di LODI,LODR,STRI,STRR --- assembler/assembler.py | 6 +++--- test/tea-encrypt.c | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/assembler/assembler.py b/assembler/assembler.py index 2ead67e..19eef5b 100644 --- a/assembler/assembler.py +++ b/assembler/assembler.py @@ -425,7 +425,7 @@ op_names = [["MOVI", "imm2reg"], ["MOVR", "reg2reg"], ["LODI", "imm2reg"], ["LODR", "reg2reg"], - ["STRI", "imm2reg"], + ["STRI", "reg2imm"], ["STRR", "reg2reg"], ["ADDI", "imm2reg"], ["ADDR", "reg2reg"], @@ -489,7 +489,7 @@ alpha_re = re.compile("^[a-zA-Z]*$") register_re = re.compile("(^[rRsS][0-4]$)|([iIrRsS][pP]$)") label_re = re.compile("^([a-zA-Z]+)\:(?:\ *\#.*)?$") symcall_re = re.compile("^(?:[jJ][pPmM][pPaAbBeEnN][iIrR]|(?:[cC][aA][lL]{2}))\ +([\w]+)(?:\ *\#.*)?$") - +commentline_re = re.compile("^\ *\#.*") def main(): if len(sys.argv) < 4: @@ -499,7 +499,7 @@ def main(): with open(sys.argv[2], 'r') as f: filedata = f.readlines() - filedata = [x.strip() for x in filedata if x.strip()] + filedata = [x.strip() for x in filedata if x.strip() and not commentline_re.match(x)] vma = VMAssembler(sys.argv[1], filedata) print(vma.functions) diff --git a/test/tea-encrypt.c b/test/tea-encrypt.c index f3fbd3f..2ee0be1 100644 --- a/test/tea-encrypt.c +++ b/test/tea-encrypt.c @@ -11,11 +11,15 @@ void encrypt(uint16_t *v) { uint16_t k1 = 0x7065; // "pe" uint16_t k2 = 0x7275; // "ru" uint16_t k3 = 0x6e73; // "ns" + printf("v0: 0x%x, v1: 0x%x\n", v0, v1); for (i = 0; i < 128; i++) { sum += delta; v0 += ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >> 5) + k1); v1 += ((v0 << 4) + k2) ^ (v0 + sum) ^ ((v0 >> 5) + k3); + printf("Intermediate v0: 0x%x | v1: 0x%x\n", v0, v1); } + printf("SUM: 0x%x\n", sum); + printf("v0: 0x%x, v1: 0x%x\n", v0, v1); v[0] = v0; v[1] = v1; }