Й.Янсен Курс цифровой электроники. Том 4. Микрокомпьютеры (1987) (1092084), страница 29
Текст из файла (страница 29)
3.37). Эти команды не влияют на другие флажковые биты. Инвертирование и установка перенооа СМСТинвертироеать содержи- мое разряда переноса) (СУ) )СУ) СУ СМС Восьмеричное: 077 Шестнадцатеричное: ЗЕ изменяется флажноеый бит: СУ другие флпжковые бимы пе изменяк:пся ):0 ) ) 0 БТС )установить е состояние ) бит переноса) )с у) ) Первнос ВТС Восьмерочное: 0В7 Шестнадцатеричное: З7 изменяется флажковый бит: СУ Другое флажковые биты не изменяктся Рис. 3.37.
Команды СМС (инвертировать перенос) н 3ТС (установить приз- нак переноса). 3.!6. Команда РАА (Оес!ша! Ат)!нз1 Ассппш!а1ог— десятичная коррекция содержимого аккумулятора) Иногда при обработке данных вместо двоичных чисел требуется использовать их двоично-десятичное представление ВСР, т.
е. двоичные числа, находящиеся в каком-либо регистре, необходимо преобразовать в ВСР-код. Эту операцию можно осуществить с помощью команды РАА. При выполнении этой команды каждый байт делится на две части. Искомая ВСР- величина получается за счет непосредственной пересылки двоичного кода из младшего полубайта, если его значение не превышает 9 и если АС-триггер не сброшен в нуль. 3.15. Команда СМА (Сошр!етпеп1 Ассштш!а1ог— .инвертировать содержимое аккумулятора) После выполнения этой команды происходит инверсия битов в соответствующем регистре, т.е. все нули заменяются еди,ницами, а единицы — иулямн (рис.
3.38). В ходе такой опера.ции значения флажковых битов не изменяются. 10! Набор команд микроЭВМ Инвертировать содержимое аккумулятора А РМЯ Ганвертировоть содермимов онк умулктора) (А) (Я) СНУЯ ПримеР Восьмеричное: Обу шестнадцатеричное: рр чрламковые биты нв изменяются Рис. 3.38.
Команда СМА (инвертировать содержимое аккумулятора). Если эти условия ие выполняются (величииа соответствуюШего числа превышает 9 или флажковый бит АС сброшен в нуль), то к двоичному числу добавляется цифра 6. Перенос, который может при этом возникнуть, добавляется к старшему полубайту. Этот полубайт обрабатывается аналогичным образом, только при этом проверяется состояние флажкового бита С'т'. На рис. 3.39 показаио место АС и Ст'-битов в наборе битов при выполнении команды ()АА.
Комаида ОАА может изменять все флажковые биты. Пример: Х)тА А Сбросить перенос МЧ! А,05 Загрузить 05м в А АС( 05 (А) к- (А) + 051в+ (Су) РАА Десятичная коррекция 5ТАХ Р Результат в ВСР-коде переслать в ячейку ЗУ по адресу, указанному в регистре РЕ В этом примере после сложения по команде АС! производится десятичная коррекция (РАА), в результате которой двоичный результат преобразуется в А в две десятичные цифры, закодированные в двоичном коде. Затем эти цифры пересылаются в ячейку ЗУ, адрес которой находится в двойном регистре !)Е. 3.17. Команда )Х)ОР Команда НОР— пустая команда, при выполнении которой никакие операции ие производятся (рис.
3.36). Набор следующих друг за другом команд )ч(ОР можно использовать для 162 Глава В жкюноена чтаткоеого бита ЯС РЯЯ 1десятичная корренция содержимого акнумулятора) бчламковне биты ряя Восьмеричное: 047 Шестнадцатеричное: 27 Все дчлаткоеые биты изменяются Тетрада ) рнлодшоя) Тетрада 2 1старшая) Рис. З.З9. Команда 1)АА (десятичная коррекция содержимого аккумулятора). обеспечения определенного времени задержки.
В результате получается импульс программатора определенной длительности, который можно применять, например, для заполнения ячеек СППЗУ. Кроме того, команду 1чОР можно использовать для заполнения пропусков в программе, которые возникают из-за применения лишних команд. Команда ХОР не изменяет содержимого ни регистров, ни флажковых битов. 3.18. Команды Е1 и Р! (разрешение прерывания и запрещение прерывания) Этн команды используются для того, чтобы разрешить (Е1) илн запретить (Р1) прерывание МП при появлении запроса на прерывание (см.
рис. 3.36). Команды Е1 и Р! изменяют содержимое триггера разрешения прерывания в МП. Этн команды не влияют на значения флажковых битов. 3.19. Относительная адресация ячеек ЗУ В некоторых типах МП кроме прямой и косвенной адресации, как это имеет место в случае МП 8085А, может использоваться также индексная адресация. При этом в индексный регистр записывается базовый адрес, суммирование которого с относительным адресом (смещением) в команде дает требуемый абсолютный адрес. Индексный регистр имеет длину, равную двум байтам.
Преимущество этого метода адресации заключается в том, что в случае набора нз нескольких последовательных команд, часть которых запрашивает обращение к ЗУ, для указания адресов достаточно всего два байта. В соответствующей команде первый байт указь)вает операцию, а второй байт — число, которое связано с базовым адресом и позволяет выбирать требуе- Набор команд микроЭВМ мый адрес. Так как в большинстве МП под относительный адрес отводится только один байт, то динамический диапазон адресов при таком методе адресации находится в ЗУ между начальным адресом и начальным адресом+255. Поскольку при использовании метода индексной адресации берутся два байта вместо трех, то в соответствующей части программы получается заметнь|й выигрыш в быстродействии при одновременном уменьшении объема ЗУ.
По этому методу можно также работать, применяя вместо индексного регистра счетчик команд. Тогда достаточно запрограммировать во втором байте число, которое прибавляется к содержимому счетчика команд или вычитается из него. При этом формируется исполнительный адрес. Поскольку второй байт относительного адреса состоит из 8 бит, то весь диапазон адресов находится здесь между +127 и †1. Старший бит при этом является знаковым. Подобная адресация обычно называется относительной. Число, которое нужно прибавить к базовому адресу (базе) или вычесть из него, называется смещением. Вместодополнительного смещения во второй байт можно помещать младший байт выбираемого адреса.
В этом случае базовый адрес будет задаваться старшим байтом, умноженным на 2', а диапазон адресов будет находиться между базовым адресом н базовым адресом +255. Рассмотренные выше команды допускают использование двухбайтового базового адреса, за счет чего полный адресный диапазон расширяется на восемь дополнительных битов. При обращении к ЗУ сначала следует выбрать и поместить в дополнительный регистр эти два первые байта; при этом требуемый адрес будет представлен в диапазоне между базой и базой +255. Такой метод представления адреса, называемый сегментацией, применяется в новых МП.
В рамках индексного представления возможна как прямая, так и косвенная адресация. При прямой адресации начальный адрес, увеличенный или умноженный на относительный адрес, указывает сразу же номер ячейки ЗУ, к которой производится обращение. При косвенной адресации начальный адрес, увеличенный или умноженный на относительный адрес, указывает ячейку ЗУ, в которой находится адрес требуемых данных. Кроме того, допускается косвенное задание относительного адреса.
При этом адрес ячейки ЗУ, в которой записан относительный адрес, необходимо считывать до того, как будет сформирован абсолютный адрес, равный базовому, к которому прибавляется или из которого вычитается относительный адрес. Различные варианты индексной адресации позволяют производить разнобразные манипуляции с обрабатываемыми данными.
Что касается сегментации, то для ее пояснения можно при- Глава 3 вести пример, когда школьник вычисляет т сумм на странице под номером п. Базовый адрес соответствует номеру страницы, который задал преподаватель, тогда как суммы представляют собой смещения, например, между 1 и 100, т. е. числа, которые встречаются на каждой странице. В данном примере все суммы, естественно, поместились бы на странице очень больших размеров порядка нескольких метров.
Однако такая страница не уместилась бы на парте, поэтому и определяются суммы на страницах намного меньшего размера. При обработке данных на ЭВМ возникают примерно такие же проблемы. Для выборки адресов ЗУ в МП имеется ограниченное число выводов. Это число в свою очередь ограничивает число ячеек ЗУ, которое доступно для МП. Если разделить ЗУ на страницы или секторы, то выборку можно осуществлять в два приема (аналогично определению номера страницы и номера суммы из приведенного выше примера). Сначала с помощью первой команды указывается соответствующий номер участка ЗУ, который помегцается во внешний регистр; относительные адреса указывают последующие команды, которые должны быть двухбайтовыми.
Очевидно, что если в ходе выполнения программы происходит переход из данного участка ЗУ в другой, то при этом необходимо корректировать соответствующий базовый адрес, т. е. старшие биты адресации. Некоторые МП имеют в своем наборе команды, с помощью которых после обращения к адресу и считывания данных об этом адресе его относительная часть (смещение) автоматически увеличивается или уменьшается на 1. Результат такой операции называется автоинкрементом или автодекрементом соответственно. Этот способ особенно удобен, когда обрабатывается одинаковым образом набор чисел из какого-либо файла данных. В конце этой главы приведен полный набор команд МП 8085А в двоичном коде.
В последней колонке указано время выполнения команды, выраженное числом тактов. Длительность одного такта при использовании кристалла кварца с частотой 6 МГц составляет 0,333 мкс. Это максимально допустимая частота. Минимальная частота равна 1 МГц, что соответствует длительности тактового цикла 2 мкс. 3.20.
Простые примеры программ В предыдущих разделах были рассмотрены команды МП 8085А и некоторые их применения. Несомненно, было бы полезно также обсудить несколько простых программ для того, чтобы научиться создавать слож- Набор команд микроЭВМ Начало иачальньш адрес У в сперапшвное ЗУ Загрузить адрес х„ е егистр НС Загдчзить в А изнчеоко с ад, НЫ Загрузит~ а рес У„ в >егист НС Переписать содержи- мое Ассад ес бгс На Ы<упьй Переписать Уп+1 ване от гное Зу Загрузить а рес Хп в регис>пр НС На П~х„ьр Переписат~ Х +> в Оперативное"зу Загрузить адрес аста- НОВО Хг(младш бога)е А Нет Авь 7 да Загрузить адрес осма- нова Х мтсрш баитзв нет А Н 7 Да Конец ные логические функции с помощью набора элементарных команд.