Итоги
Вы собрали из транзисторов то, чем считает процессор.
- Полусумматор —
XORиAND: сумма и перенос одного разряда. - Полный сумматор принимает перенос от соседа; четыре и восемь таких — сложение столбиком, перенос бежит по разрядам.
- Дополнительный код — отрицательные числа без новой схемы:
−B— это перевёрнутые биты и плюс 1. Вычитание — тот же сумматор сXORна входе. - Флаги
C,Z,N,V— что процессор знает об ответе. СравнениеCMP— вычитание, от которого остаются только флаги. - Калькулятор ± — ещё одно вычитание,
0 − S, превращает ответ в знак и модуль. - Десятичный счёт (бонус) — коррекция «+6» после каждой цифры.
Итоговый калькулятор — 1 208 транзисторов.
Что дальше
- Ускоренный перенос. В нашем сумматоре перенос бежит по разрядам по очереди: старший разряд ждёт всех младших. Для 8 бит это незаметно, а для 64 — медленно. Настоящие процессоры заранее вычисляют, родится ли перенос в группе разрядов, и не ждут волну.
- Умножение — это сложение со сдвигом:
13 × 5=13 × 4 + 13 × 1. Сумматор, регистр и сдвиг — и машина умножает столбиком, как в школе. - АЛУ. Добавь к сумматору
AND,OR,XORи выбор результата — получится арифметико-логическое устройство, сердце процессора.