6 my @code = map { chomp; [ split /\s+/ ] } <>;
20 say join(' ', $ip, @{ $code[$ip] }, map { "$_=$regs{$_}" } sort keys %regs);
21 my @ins = @{ $code[$ip] };
22 if ($ins[0] eq 'cpy') {
25 $val = $regs{$val} if $val =~ /[a-z]/;
27 } elsif ($ins[0] eq 'inc') {
29 } elsif ($ins[0] eq 'dec') {
31 } elsif ($ins[0] eq 'jnz') {
32 my ($reg, $val) = @ins[1..2];
33 $reg = $regs{$reg} if $reg =~ /[a-z]/;
34 $val = $regs{$val} if $val =~ /[a-z]/;
38 } elsif ($ins[0] eq 'tgl') {
40 $off = $regs{$off} if $off =~ /[a-z]/;
41 my $other = $code[$ip + $off];
42 $other->[0] = $tgl{$other->[0]};
44 say "Unknown instrution: $_";