#! /usr/bin/env python3
import sys
import traceback
import SerialALU
ALU = SerialALU.SerialALU()
try:
    for line in sys.stdin:
        try:
            split_it = line.split('#')
            command = split_it[0].strip()
            if len(split_it) > 1:
                comment = split_it[1].strip()
            else:
                comment = ''
            (instruction_str, input_str) = command.split()
            if len(instruction_str) != 7 or len(input_str) != 16:
                raise ValueError('Bad input line: {0}'.format(line))
            instruction_num = int(instruction_str, 2)
            input_num = int(input_str, 2)

            ALU.set_instruction(instruction_num)
            ALU.set_input(input_num)            
            ALU.clock()

            print('{0:07b} {1:016b} --> {2:03b} {3:016b}    # {4}'.format(
                instruction_num, input_num,
                ALU.get_status(), ALU.get_output(), comment))
        except ValueError:
            print('Bad input line: {0}'.format(line))

except Exception as e:
    traceback.print_exc()
