Дж.Хиллбурн, П.Джулич Микро-ЭВМ и микропроцессоры (1979) (1092080), страница 19
Текст из файла (страница 19)
Выполнение команды ВОЗВРАТ в основную программу. Верхний адрес в стеке пересылается в счетчик команд. скольку для нее не требуется полного задания адреса памяти, и поэтому она выполняется быстрее. 4. Команды операций. Данная группа включает команды операций над отдельным регистром или триггером состояния, при выполнении которых отсутствует пересылка данных.
Типичными командами операций яв.чяются: а) С1ЕАЕ (ОЧИСТИТЬ). Все разряды соответствующего регистра (например, аккумулятора) устанавливаются в нули. б) 1ХСКЕМЕ)т)Т (УВЕЛИЧИТЬ НА 1). Содержимое регистра увеличивается на 1. в) ПЕСГсЕМЕЫТ (УМЕНЬШИТЬ НА 1). Содержимое регистра уменьшается на 1. г) СОМР1ЕМЕ)т(Т (ОБРАЗОВАТЬ ДОПОЛНЕНИЕ). В ре.зультате выполнения этой команды получаем обратный код (дополнение до 1) содержимого некоторого регистра. д) ЕОТАТЕ (ЦИКЛИЧЕСКИР( СДВИГ). Содержимое аккуму.лятора циклически сдвигается на один разряд вправо или влево.
При циклическом сдвиге вправо наименьший значащий разряд попадает в позицию наибольшего значащего разряда и каждый из остальных разрядов сдвигается на одну позицию вправо. Выполнение циклического сдвига вправо содержимого аккумулятора показано на рнс. 4.30. В команде КОТАТЕ может использоваться триггер переноса, как показано на рис. 4.31 для циклического сдвига влево.
Поскольку выполнение условных команд связано с состоянием флажков, операция циклического сдвига употребляется перед выполнением последовательности команд, результат реализации которых зависит от содержимого отдельных разрядов некоторого информационного слова. Например, прежде чем считать информаци- Архитектура микро-ЭВЬ1 126 Алкумулитвчр Рис. 4.30. Циклический сдвиг вправо содержимого аккумулитора. С„> пПде Акнитулятор лавемпгп Рис. 4,31. Циклический сдвиг влево с использованием триггера переноса.
онное слово с устройства ввода-вывода, машина должна определить, готово ли данное устройство к считыванию. Эту информацию она получит, когда считает слово состояния устройства. Последнее содержит определенный признак, если устройство готово выдать информационное слово. Предположим, что для индикации этого состояния используется 1 в наименьшем значащем разряде. При выполнении циклического сдвига вправо устанавливается в состояние 1 триггер переноса, и обращение к устройству ввода-вы' вода может быть выполнено по команде условного перехода. е) ВЕЗЕТ СОХ01Т10Х Р1.1Р-Р).ОР (СБРОС ТРИГГЕРА УСЛОВИЯ).
По этой команде сбрасывается соответствующий флажок. ж) ПЕС1МА1 АШЦБТ АСС()М()1АТОЯ (ПРОИЗВЕСТИ ДЕСЯТИЧНУЮ КОРРЕКЦИЮ АККУМУЛЯТОРА). Команды сложения и вычитания часто выполняются над числами, записанными в дополнительном коде. Если же обрабатываемые данные представлены в двоично-десятичном коде, то результат сложения будет неверным, если сумма каких-либо двух цифр превысит 9. При выполнении рассматриваемой команды проверяется это условие ()9) и производится корректировка результата путем добавления к его соответствующим разрядам числа 6 (см. равд. 3.6). Включение данной команды в набор команд ЭВМ весьма желательно, когда вводимые и выводимые данные представлены в двоично-десятичном коде. 5. Команды ввода-вывода.
Команды ввода-вывода содержат две основные команды: а) 1ХР1)Т (ВВОД). При данной команде в аккумулятор загружается содержимое шины ввода-вывода. 126 Глава 4 б) О()ТР()Т (ВЫВОД). Эта команда пересылает содержимое аккумулятора на шину ввода-вывода. В машинах с большим набором команд часто две или более такие операции объединяются в одной команде. Использование этих команд и их эффективность в значительной степени определяются особенностями конкретного применения машины.
ШИФРИРОВАНИЕ КОМАНД Таблица 4Д Тииичные команды и их мнемонические обозначения Мнемонвчесиое обоаначеннв Команда АО Я)В или Я) МОЧ 1О или 1. Ок Ар( ХОК или ХО Сложить (Абб) Вычесть (Яншгас() Переслать (Моче) Загрузить (1оаб) ИЛИ (ОИ) И (А)ЧО) ИСКЛЮЧАЮЩЕЕ ИЛИ (ЕХСШЗ1ЧЕ ОН) Для упрощения записи команд или адресов их двоичное представление часто заменяют восьмеричным либо шестнадцатеричным. Например, команду «Переслать содержимое регистра В в регистр А» (1п1е! 8008) можно представить в следующем виде: Представлении восмеричвое Мнемоничесиое обоаначение шестнадцатеричное двоичное СВ 310 11001000 МОЧ А,В Команды хранятся в памяти в таком же виде, что и данные.
В машинах Гарвардского класса для командных и информационных слов используются разные памяти. ~В машинах Принстонского класса между этими словами не существует различия, и их распознавание производится лишь по местоположению слова в памяти. Все команды хранятся в виде двоичных чисел. Такая форма представления команд называется машинным языком или машинньглт кодом. Запомнить эти коды сложно и при этом легко допустить ошибку, Поэтому изготовители предлагают набор мнемонических (алфавитно-цифровых) обозначений команд для выпускаемых машин.
Эти обозначения представляют собой либо полное паиме» нование выполняемых операций, либо их аббревиатуру (табл. 4.1). Архитектура микро-ЭВМ 127 СПОСОБЫ АДРЕСАЦИИ Командное слово должно содержать операцию (код операции) и адрес ячейки памяти или регистра, где находятся данные (операнд), над которыми должна .выполняться операция. Команду длиной п разрядов можно разбить на три части: 1) код операции, 2) признак адресации и 3) адрес операнда (рис. 4.32). Для разных микропроцессоров количество двоичных разрядов в каждой из этих частей различное.
Рнс. 4.32. Формат команды. Длина команды зависит от выполняемой операции и конкретной машины. Для команды 8-разрядного формата существует лишь 2'= 256 возможных комбинаций операций и адресов. Очевидно, этого недостаточно для организации обращения к памяти приемлемой емкости. Поэтому команды, содержащие обращение к памяти, часто имеют длину 2 илн 3 байт [201, что соответствует командам длиной 16 или 24 двоичных разряда. В большинстве случаев 1 байт используется'для кода операции и признака адресации команды.
Количество разрядов, отведенных для каждой из этих составляющих команды, и их относительное расположение в байте для разных процессоров различное. Признак адресации и адрес операнда команды совместно определяют ячейку памяти, в которой хранится операнд.
Существуют различные способы адресации операнда 1241. Наиболее важными из них для макропроцессоров являются следующие: прямая, косвенная, относительная, с индексированием и непосредственная. Признак адресации определяет способ интерпретации адреса. Рассмотрим перечисленные способы адресации: а) Прямая адресация. При этом способе адресации исполнительный адрес операнда определен непосредственно в команде. Рассмотрим, например, команду «Сложить содержимое ячейки памяти по адресу 032 с содержимым аккумулятора». Такую команду можно символически записать как А0 032 Адрес операнда (032) непосредственно определен в самой команде (рис.
4.33). Это обычный способ адресации в микро-ЭВМ. При прямой адресации в 4- или 8-разрядных микропроцессорах обычно используются команды длиной в несколько слов. б) Косвенная адресация. При данном способе адресации в комаиде указывается адрес, по которому хранится адрес операнда (рнс. 4.34). В ячейке с адресом 543 расположено число 301, над 128 Глава 4 Еегаглр вемаез йеег Лаюеьеь дзг е,уьь ОЗЗ Рис.
4.33. Прямая адресация. которым производится операция. При косвенной адресации возможно адресовать большой блок памяти командой длиной в одно слово. В микропроцессорах обычно используется разновидность данного способа адресации, называемая косвенной адресацией ло регистру, когда адрес операнда хранится в одном или нескольких регистрах ЦП. В большинстве случаев подобная архитектура позволяет обращаться к любой ячейке памяти, используя команду длиной в одно слово. в) Относительная адресация.
При относительной адресации исполнительный адрес определяется относительно счетчика команд, так что для получения адреса операнда указанный в команде адрес складывается с содержимым счетчика команд. Например, пусть адрес, указанный в команде, есть 11, а в счетчике команд содержится число 124. Тогда адрес операнда будет 11+124=135 (рис. 4.35). Использование относительной адресации упрощает распределение памяти.