Sistemato assembling di LODI,LODR,STRI,STRR
This commit is contained in:
parent
6f9e7db4ee
commit
a6475f3500
@ -425,7 +425,7 @@ op_names = [["MOVI", "imm2reg"],
|
|||||||
["MOVR", "reg2reg"],
|
["MOVR", "reg2reg"],
|
||||||
["LODI", "imm2reg"],
|
["LODI", "imm2reg"],
|
||||||
["LODR", "reg2reg"],
|
["LODR", "reg2reg"],
|
||||||
["STRI", "imm2reg"],
|
["STRI", "reg2imm"],
|
||||||
["STRR", "reg2reg"],
|
["STRR", "reg2reg"],
|
||||||
["ADDI", "imm2reg"],
|
["ADDI", "imm2reg"],
|
||||||
["ADDR", "reg2reg"],
|
["ADDR", "reg2reg"],
|
||||||
@ -489,7 +489,7 @@ alpha_re = re.compile("^[a-zA-Z]*$")
|
|||||||
register_re = re.compile("(^[rRsS][0-4]$)|([iIrRsS][pP]$)")
|
register_re = re.compile("(^[rRsS][0-4]$)|([iIrRsS][pP]$)")
|
||||||
label_re = re.compile("^([a-zA-Z]+)\:(?:\ *\#.*)?$")
|
label_re = re.compile("^([a-zA-Z]+)\:(?:\ *\#.*)?$")
|
||||||
symcall_re = re.compile("^(?:[jJ][pPmM][pPaAbBeEnN][iIrR]|(?:[cC][aA][lL]{2}))\ +([\w]+)(?:\ *\#.*)?$")
|
symcall_re = re.compile("^(?:[jJ][pPmM][pPaAbBeEnN][iIrR]|(?:[cC][aA][lL]{2}))\ +([\w]+)(?:\ *\#.*)?$")
|
||||||
|
commentline_re = re.compile("^\ *\#.*")
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
if len(sys.argv) < 4:
|
if len(sys.argv) < 4:
|
||||||
@ -499,7 +499,7 @@ def main():
|
|||||||
|
|
||||||
with open(sys.argv[2], 'r') as f:
|
with open(sys.argv[2], 'r') as f:
|
||||||
filedata = f.readlines()
|
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)
|
vma = VMAssembler(sys.argv[1], filedata)
|
||||||
print(vma.functions)
|
print(vma.functions)
|
||||||
|
@ -11,11 +11,15 @@ void encrypt(uint16_t *v) {
|
|||||||
uint16_t k1 = 0x7065; // "pe"
|
uint16_t k1 = 0x7065; // "pe"
|
||||||
uint16_t k2 = 0x7275; // "ru"
|
uint16_t k2 = 0x7275; // "ru"
|
||||||
uint16_t k3 = 0x6e73; // "ns"
|
uint16_t k3 = 0x6e73; // "ns"
|
||||||
|
printf("v0: 0x%x, v1: 0x%x\n", v0, v1);
|
||||||
for (i = 0; i < 128; i++) {
|
for (i = 0; i < 128; i++) {
|
||||||
sum += delta;
|
sum += delta;
|
||||||
v0 += ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >> 5) + k1);
|
v0 += ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >> 5) + k1);
|
||||||
v1 += ((v0 << 4) + k2) ^ (v0 + sum) ^ ((v0 >> 5) + k3);
|
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[0] = v0;
|
||||||
v[1] = v1;
|
v[1] = v1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user