calculate = new Object({
'addr': (r, a, b, c) => r[c] = r[a] + r[b],
'addi': (r, a, b, c) => r[c] = r[a] + b,
'mulr': (r, a, b, c) => r[c] = r[a] * r[b],
'muli': (r, a, b, c) => r[c] = r[a] * b,
'banr': (r, a, b, c) => r[c] = r[a] & r[b],
'bani': (r, a, b, c) => r[c] = r[a] & b,
'borr': (r, a, b, c) => r[c] = r[a] | r[b],
'bori': (r, a, b, c) => r[c] = r[a] | b,
'setr': (r, a, b, c) => r[c] = r[a],
'seti': (r, a, b, c) => r[c] = a,
'gtir': (r, a, b, c) => r[c] = a > r[b] ? 1 : 0,
'gtri': (r, a, b, c) => r[c] = r[a] > b ? 1 : 0,
'gtrr': (r, a, b, c) => r[c] = r[a] > r[b] ? 1 : 0,
'eqir': (r, a, b, c) => r[c] = a === r[b] ? 1 : 0,
'eqri': (r, a, b, c) => r[c] = r[a] === b ? 1 : 0,
'eqrr': (r, a, b, c) => r[c] = r[a] === r[b] ? 1 : 0
})