#!/bin/sed -f ############## # FULL ADDER # ############## # Wczytaj obie linie danych i C-in N N /^[01]\+\n[01]\+\n[01]\{1\}$/! { i\ ERROR d q } h :LOOP # Wyłuskaj bity 0 s/^.*\(.\)\n.*\(.\)\n.$/\1\2/ #XOR-uj je s/00/0/ s/11/0/ s/01/1/ s/10/1/ # dopisz wynik do holda H # pobierz input jeszcze raz i wyluskaj bit 0 g s/^.*\(.\)\n.*\(.\)\n.\n.$/\1\2/ #AND-uj s/11/1/ s/01/0/ s/10/0/ s/00/0/ # do holda H #Odrzuć najmłodszy bit g s/^\(.*\).\n\(.*\).\n\(.\n.\n.\)$/\1\n\2\n\3/ h #Wyłuskaj wynik XOR-a i C-in s/^.*\n.*\n\(.\)\n\(.\)\n.$/\1\2/g #XOR-uj je s/00/0/ s/11/0/ s/01/1/ s/10/1/ p #g #/^.\+\n.\+$/ b LOOP # clean last out d