16 push @code, [ split /\s+/ ];
21 my ($op, $a, $b, $c) = @{ $code[$ip] };
26 $regs[$c] = $regs[$a] + $regs[$b];
27 } elsif ($op eq 'addi') {
28 $regs[$c] = $regs[$a] + $b;
29 } elsif ($op eq 'mulr') {
30 $regs[$c] = $regs[$a] * $regs[$b];
31 } elsif ($op eq 'muli') {
32 $regs[$c] = $regs[$a] * $b;
33 } elsif ($op eq 'andr') {
34 $regs[$c] = $regs[$a] & $regs[$b];
35 } elsif ($op eq 'andi') {
36 $regs[$c] = $regs[$a] & $b;
37 } elsif ($op eq 'orr') {
38 $regs[$c] = $regs[$a] | $regs[$b];
39 } elsif ($op eq 'ori') {
40 $regs[$c] = $regs[$a] | $b;
41 } elsif ($op eq 'setr') {
42 $regs[$c] = $regs[$a];
43 } elsif ($op eq 'seti') {
45 } elsif ($op eq 'gtrr') {
46 $regs[$c] = $regs[$a] > $regs[$b] ? 1 : 0;
47 } elsif ($op eq 'eqrr') {
48 $regs[$c] = $regs[$a] == $regs[$b] ? 1 : 0;
50 $ip = $regs[$ip_reg] + 1;