Й.Янсен Курс цифровой электроники. Том 1. Основы цифровой электроники на ИС (1987) (1092081), страница 9
Текст из файла (страница 9)
который производит операцию сдвига одновременно с первыен регистром. Проиллюстрируем процесс умножения с помощью следующего примера. Предположим, что нам нужно умножить двоичное число 6 на двоичное число 5. Первое число мы берем в качестве множимого, второе — в качестве множителя и помещаем их в регистры А и В соответственно (рнс. 1.32). Умножение начинается с подготовительного шага — сброса. на нуль регистра результатов С, т. е. все биты в этом регистре. принимают значение О. На первом шаге умножения считывается самый младший.
(наименее значимый) бит регистра В, в котором находится множитель. Здесь мы имеем 1, а это означает, что требуется О-пппп Снанапв — — + С 0 С Сонянпяпепепппп а [р( а С С Садех енрпеп Праоедепенпе=да Ппнсерянп Попмрннп Панерянп ) Ппснерянп Глава 1 сложить множимое с результатом, находящимся в регистре С. В этом и заключается первый шаг умножения.
После того как найдена первая частная сумма, выполняется операция сдвига, причем как в регистре С, так и в регистре В. В результате сдвига на одну позицию вправо удаленный бит сдвигается с позиции младшего бита регистра С в позицию старшего бита внутри регистра В. Таким образом, при умножении регистры С н В в схеме можно связывать последовательно, так как первый бнт обрабатывается в позиции наименее значимого бита, после чего он удаляется из регистра В и может быть даже потерян. Следует отметить, что знаковый бит в регистре С в операции сдвига не участвует и остается на прежнем месте. Однако следующий по значимости бит, как видно из рис.
1.32, может уже заменить знаковый бит. Сдвиг на один бит в регистре В приводит к тому, что следующий бит множителя переходит в позицию младшего бита, где его можно использовать. В нашем примере этот бит равен О; это означает, что нужно производить сложение с числом О. Сложение можно не делать, так как в действительности такое «бездействие» также эквивалентно прибавлению числаО. Одновременно с этим вторым сложением происходит второе умножение, после чего происходит снова сдвиг вправо в регистрах С и В, так что младший бит из С снова перейдет в позицию старшего бита в В.
На следующем шаге в обработку поступит третий бит из регистра В и мы замечаем, что он равен 1. После этого происходят сложение с умножением и повторный сдвиг на один бнт в регистрах С и В. Процесс продолжается до тех пор, пока не будут обработаны все биты множителя. Последний шаг операции умножения состоит в сдвиге на один бит только в регистре В. Старший бит этого регистра заполняется нулем, который, однако, не влияет ни на числовое, ни на знаковое значение результата. 1.11. Деление двоичных чисел Двоичное деление по сути есть не что иное как вычитание и сдвиг н выполняется аналогично делению десятичных чисел (рис. 1.33).
Мы начинаем с того, что помещаем делитель под делимым как можно левее и производим вычитание из делимого. После вычитания в наиболее значимый разряд частного заносится 1. Если вычитание невозможно из-за того, что остаток оказывается отрицательным, вычитание не выполняется н в наиболее значимый разряд частного заносится О. Затем мы сдвигаем весь делитель на одну позицию вправо н осуществляем операции: после вычитания соответствующий Дискретная сгеиогеяника и двоичное исчисление бит заносится в следующий разряд в частном, выполняется очередной сдвиг и т.
д. до тех пор, пока не будет достигнут последний разряд делимого. Деление на этом заканчивается; в нашем примере получается остаток 0 (45 делится на 5 без остатка). Рассмотренный выше метод деления в вычислительной технике известен под названием «деление без восстановления остатка». В цифровой обработке данных часто используется другой метод деления, который более приспособлен к конкретной архитектуре ЭВМ и известен под названием «деление лстщьль дьпидд Тс рнрь с восстановлением остат- Фб д ка». В этом методе вычитом случае, когда разность оказтявается отри- П 1 д 1 ПдддьдьЯ~д цательной, т. е. возника- о~ат ет отрицательный оста- ()))д д И ток. Всякий раз, когда Оьтратдк промежуточный остаток ~ днтадьй разрИ после какого-нибудь вы- ЧнтаНИЯ ИЛИ СЛОЖЕНИЯ Рис.
),ЗЗ. Двоичное деление по правилам даЕт полОжИтельный рЕ- вычислений, принятым в десятичной систезультат (т. е. знаковый ме (метод без восстановления остатка). бит промежуточного остатка равен 0), в регистр частного помещается 1. Если остаток. отрицателен, т. е.
знаковый бит равен 1, в соответствующую ячейку регистра частного помещается О. Процесс деления по методу с восстановлением остатка иллюстрируется примером, приведенным на рис. 1.34. Делимое. помещается в двойной регистр С+В (два регистра, расположенные последовательно один за другим). Регистр В содержит младшие биты делимого.
Старшие биты и знаковый бит находятся в регистре С. Делитель размещен в регистре А и имеет длину 4 бит, что позволяет выполнить 4 основных и один подготовительный шаг деления. Мы начинаем с подготовительного шага — делимое из ЗУ перемещается в двойной регистр С+В. На первом шаге выполняются следующие операции: в вычислительном устройстве из 4 бнт делимого, находящихся в регистре С, вычитается делитель. Если результат вычитания положителен (т. е. знаковый бит остатка равен 0), в одноразрядный вспомогательный регистр помещается 1, если же результат вычитания отрицателен, в этот регистр помещается 0'>. Затем производится сдвиг на од- и На рис. 1.34 этот вспомогательный регистр не показан. Вместо него производится обрапгение знакового бита, что одно и то все.
— Прим. ред. Глава ! иу позицию влево для всех битов регистра С+В, после чего старший бит В становится младшим битом в регистре С. Одно.временно результат первого вычитания, который все еще нахо,дится во вспомогательном регистре, переводится в младший разряд регистра В. На этом первый шаг заканчивается и начинается второй, который реализуется аналогично первому. Вы- а~а~ У ~00 а у апп П~ ~0 0 у ау а~пав сыпешь Шаг г аддис пледа Слплиать 0 шаг 0 ртаг и аддис пледа аддис длепп Слплилть ахат' 0 000 пп 0 000 ~00/ с а 10т' пряпая передапа иг рсгистпра дрегисртр— аддис пледа аслтплтон 0 иастпнпе 1 10нпнппый рпгрнд ( ) Пито иосанога Птепдкодина индертродолтьт Рис.
1.34, Деление но методу с восстановлением остатка. читание произойдет, если во вспомогательном регистре, где все еще находится результат предыдущего (первого) шага, содержится 1. И наоборот, будет выполнено сложение, если результат предыдущего шага равен О. Последующие шаги выполняются аналогично, при этом всегда после соответствующего шага в правую ячейку регистра В помещается следующий бит частного.
По окончании деления частное будет находиться в регистре В, остаток — в регистре С. В методе деления с восстановлением остатка после каждого вычитания всегда определяется знак остатка. Если промежуточный остаток положителен, производится вычитание, если аке остаток отрицателен, выполняется сложение. В этом смысле оЗ Дискретная схемотехника и двоичное исчисление деление с восстановлением остатка отличается от деления без восстановления остатка, где всегда производится только вычитание, и если это вычитание «не идет», то происходит обращение к следующей цифре справа из делимого.
1 12. Плавающая запятая Используемая система обозначений для целых положительных и отрицательных двоичных чисел не позволяет описать дробные числа так, как это делается в стандартной десятичной системе с помощью дробной черты или запятой. В вычислительной математике дробь обычно представляется в виде целого числа, умноженного на основание в степени с отрицательным показателем.
Эту форму представления можно ввести и в систему счисления с целыми положительными и отрицательными числами. Она называется системой представления с плавающей запятой. В этой системе любое целое число можно представить в следующей общей форме: число = мантисса хоснование"'""""'. При этом мантисса, которая еще называется указателем, является целым числом и может быть как положительной, так и отрицательной, т.
е. она имеет знак. Показатель всегда является целым и положительным числом. Отсюда ясно, что дробное число можно представить также в виде мантиссы (которая определяет положительную или отрицательную целую часть), но умноженной на основание с отрицательным показателем. В цифровой обработке данных и особенно в вычислительной технике эта система обозначений дробных чисел используется весьма широко. В системе представления с плавающей запятой мантисса выражается с помощью одной группы битов, а показатель — с помощью другой, что позволяет существенно расширить диапазон чисел, однако при этом уменьшается абсолютная точность числа, поскольку она всегда определяется мантиссой, для которой теперь выделено ограниченное число битов. В общем случае для мантиссы используется столько битов, сколько требуется для обеспечения требуемой точности.
На рис. 1.35 приведены целое и дробное числа в двоичной форме, записанные в системе записи с плавающей запятой. Рассмотрим вначале представление целых чисел. Видно, что мантиссу 110 со знаковым битом 0 необходимо умножить на 2'=32. Как уже говорилось выше, сдвиг влево на один разряд означает умножение на 2, сдвиг влево на два разряда — умножение на 4, сдвиг на три разряда — умножение на 8 и т. д. Глава ! ,ойоооное сосна ~цупщссп» я полотапэель ионптоссп полога~попо ПоаНИЬ а" — ~Я~ЯЯ ~а~ т фох~'=+ХИ ра.рнп пнпнобьш' рагрнп~н а((п о соьогоь" ьнеьо 0((аа 2х О( ( 000 пх П((Папа бх 0((00000(ах а(Н000000 пух =+И тпр =+Ю Ионтоассп Их~Я~ аонагошень Я10:~ ~=пхЕ э=ахЕ о соьаго Пораоо ~ — — ( г-'=чхт Хх2 т=апа и щю 071 Рис, И35. Представление целых (а] и дробных чисел (б) в системе эзппсн с плавающей запятой. Умножение на 2' не представляет никаких трудностей для натпего вычислительного устройства, так как в результате пятикратного сдвига мантисса увеличится в точности в 2'=32 раза.