Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Команды обработки данных






Операции, выполняемые в иллюстративном микропроцессоре при помощи арифметических и логических команд, являются базисными и встречаются в большинстве микропроцессоров. В некоторых микро­процессорах, кроме того, предусмотрены команды десятичной ариф­метики, двоичного умножения, двоичного деления и других операций.

Десятичная арифметика встречается в системе команд многих ми­кропроцессоров. Десятичные числа, как правило, представляются в коде 8421 BCD с четырехбитовыми цифрами, размещаемыми в слове данных вплотную друг к другу. Например, в микропроцессоре с вось­мибитовым словом каждое слово интерпретируется как двузначное десятичное целое без знака.

Десятичное сложение обычно выполняется с помощью двоичного сложения и последующей коррекции результата. Для коррекции сначала определяются десятичные разряды, в которых выполняется одно из двух условий: (1) десятичная цифра в двоичной системе превышает 9 или (2) возникает перенос из старшего двоичного разряда цифры при двоичном сложении. К каж­дому такому десятичному разряду прибавляется корректирующая циф­ра 6, причем это сложение также выполняется обычным образом в двоичной системе с распространением всех переносов.

Реализуется описанная процедура в микропроцессорах обычно од­ним из двух способов. В первом случае предусматривается команда десятичного сложения, которая в процессе выполнения осуществляет и двоичное сложение, и коррекцию. Во втором — предусматривается отдельная команда десятичной коррекции (decimal-adjust instruction). В этом случае при десятичном сложении сначала выполняется обыч­ная команда двоичного сложения, оставляющая результат в регистре, а затем выполняется команда десятичной коррекции.

Для правильной работы эта вторая команда должна располагать необходимой информацией. В частности, должно быть известно о на­личии или отсутствии переносов из каждого десятичного разряда при двоичном сложении. В связи с этим обычно добавляются триггеры, фиксирующие переносы из каждого четвертого двоичного разряда при двоичном сложении. При восьмибитовом слове данных нужен только один дополнительный триггер переноса, поскольку триггер переноса из восьмого разряда — триггер переноса С — уже есть.

Умножение и деление — это относительно сложные операции, и аппаратно они реализуются лишь в немногих микропроцессорах. Обычно эти операции выполняются над двоичными целыми числами без знаков. Как правило, по команде умножения перемножается со­держимое двух регистров, и результат двойной длины запоминается в паре регистров. При делении делимое обычно задается парой регист­ров, а делитель — одним. Целое частное при этом помещается в один регистр, а остаток — в другой. Перед выполнением деления, однако, происходит проверка на возможное переполнение частного. Перепол­нение происходит в том случае, когда для представления частного требуется больше разрядов, чем содержится в одном регистре. Тест переполнения можно провести, сравнивая делитель со старшей поло­виной делимого. Переполнения частного не произойдет, если делитель не равен нулю и по крайней мере вдвое превышает старшую половину делимого.

В силу сложности операций умножения и деления время их вы­полнения обычно существенно превышает время выполнения других операций. Каждая из них состоит из многих шагов, выполняемых в микропроцессоре последовательно.

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.