![]() | |
|
Главная Радио и связь са исходного массива, но и в качестве счетчика длины, массив а, по нулевому состоянию которого происходит выход из цикла. Начальная установка ИР на длину массива выполняется в блоке 2. При первом выполнении действий, составляющих блок 3, в аккумулятор считывается слово из ячейки с адресом A„(;xi + п - 1, т. е. п-й элемент исходного массива. После обработки (блок 4) содержимое аккумулятора записывается в память в соответствии с адресом A„ohi + 4- п - 1 в указателе стека (блок 5). Сразу после записи содержимое указателя стека уменьшается на единицу (см. § 2.6), тем самым стек подготавливается к записи следующего слова. Уменьшение на единицу содержимого ИР (блок 6), во-первых, приводит к выборке при следую- Начало Устанпвка УС па последний адрес конечиово массива Г-2- Установка ИР иа длину массива Выборка слова исходного массива с аспользоданием индексной адресаций Обработка выбранного слова r-S- Запись е стек l-ff-Уменьшеиие на единицу саВертимого ИР ![]() Рис. 3.19 щем повторении цикла очередного слова исходного массива, а во-вторых, используется для анализа окончания передачи массива данных (блок 7). Ниже приведена программа передачи данных в соответствии с алгоритмом рис. 3.19: ЗАГРУЗИТЬ А„„„1+п-1 НЕПОСРЕДСТВЕН-,Н0 УС,- ;ЗАНЕСЕНИЕ В УКАЗАТЕЛЬ СТЕКА АДРЕСА ПОСЛЕДНЕГО ЭЛЕМЕНТА КОНЕЧНОГО МАССИВА. ЗАГРУЗИТЬ НЕПОСРЕДСТВЕННО ИР, ЦИКЛ: ЗАГРУЗИТЬ АККУМУЛЯТОР ЗАПОМНИТЬ В СТЕКЕ УМЕНЬШИТЬ НА Г УПН0 А„ск1-1. X ЗАНЕСЕНИЕ В ИР ДЛИНЫ МАССИВА; ВЫБОРКА ИЗ ПАМЯТИ С ИСПОЛЬЗОВАНИЕМ ИНДЕКСНОЙ АДРЕСАЦИИ ЭЛЕМЕНТА ИСХОДНОГО МАССИВА. ЗАПИСЬ СОДЕРЖИМОГО АККУМУЛЯТОРА В СТЕК. ......... ;ПРОДОЛЖЕНИЕ ПРОГРАММЫ. Сравнительный анализ алгоритмов передачи данных, выполненный для зарубежных и отечественных МП, позволяет сделать следующие выводы: 1. Использование МП с двумя ИР или регистрами косвенной адресации позволяет уменьшить по сравнению с МП с одним регистром объем программы передачи данных и время ее реализации (в тактах) в среднем на 30-35% . 2. Использование МП со стеком в оперативной памяти и одним ИР позволяет уменьшить по сравнению с МП без стека в оперативной памяти объем программы передачи данных и время ее реализации (в тактах) в среднем на 60-65%. § 3.9. ОСОБЕННОСТИ СИСТЕМ КОМАНД РАЗЛИЧНЫХ МП В предыдущих параграфах была рассмотрена некоторая обобщенная, «усредненная» система команд, составленная на основе анализа систем команд наиболее распространенных однокристальных МП. Однако для большинства конкретных моделей МП характерно использование своих «индивидуальных» систем команд, отличающихся от рассмотренной выше в большей или меньшей степени. Лишь немногие модели МП, при разработке которых преследовалась цель их программной совместимости с уже существующими МП или ЭВМ, имеют одинаковые с соответствующими МП или ЭВМ системы команд. Рассмотрим основные отличия систем команд различных МП и причины, обусловливающие эти отличия. Главным фактором, определяющим выбор системы ко.манд разрабатываемого МП, является его проблемная ориентация, поскольку она отражается на основных архитектурных характеристиках МП: его наборе операций, разрядности, возможности работы со словами двойной длины, видах адресации, числе внутренних регистров, емкости адресуемой памяти и некоторых других, т. е. непосредственно связана с системой команд МП. Основным направлением применения МП являются встроенные управляющие системы, для которых характерен преимущественно логи- ческий характер обработки информации. Поэтому набор операций большинства МП включает операции поразрядной логической обработки условных и безусловных передач управления, сложения, вычитания, ввода, вывода и некоторые вспомогательные. Разрядность этих МГ обычно равна восьми, кроме того, в ряде случаев предусматривается возможность работы со словами двойной длины. Для адресации памяти большого объема предусматривается чаще всего косвенный, а иногда относительный способы адресации (см. § 3.2.). В "состав МП включается, как правило, до восьми внутренних регистров, что позволяет ограничить длину регистровых команд одним байтом. Но для прямого обращения к памяти при типовой 16-разрядной адресной шине требуются команды длиной в три байта. Кроме того, для представления некоторых команд, например, с непосредственной адресацией находи-применение двухбайтный формат. Типичными представителями рассматриваемой группы являютс5 МП К580ИК80 (§ 2.9), Intel 8080, М6800, Z-80 и многие другие. В на стоящей главе в качестве обобщенной использовалась система коман; именно этой группы МП. В тех случаях, кргда управление процессами или объектами не связано со сложной обработкой данных и большими объемами обрабатываемой информации, появляется возможность применения несложных однокристальных микро-ЭВМ, или, как их часто называют, микроконтроллеров (М6801, 8048/8748, Z8000 и др.). Очевидно, что системы команд таких устройств совпадают с системами команд рассмотренных выше МП для встроенных управляющих систем или являются их упрощенными версиями. Стремление заменить мини-ЭВМ малой и средней мощности более дешевыми и надежными микро-ЭВМ (см. рис. В.2) привело к разработке ряда МП с архитектурными характеристиками, соответствующими характеристикам процессоров мини-ЭВМ. Практическое применение полулучили три подхода к созданию МП этого класса: расширение функциональных возможностей МП за счет увеличения числа элементов на кристалле; разработка МП, реализующего полностью систему команд конкретной модели мини-ЭВМ; разработка микро-ЭВМ на основе мик-ропрограммируемого секционного МП, позволяющего реализовать произвольную, удобную для предполагаемого применения систему команд. Первый подход нашел применение при разработке 16-разрядного МП 8086 (§ 2.10). На формировании его системы команд сказались, с одной стороны, желание разработчиков использовать богатый задел по программному обеспечению МП 8080, а с другой - технические возможности улучшения архитектурных характеристик МП увеличением его разрядности, введения относительной адресации, увеличения емкости адресуемой памяти, реализации операций умножения и деле- м ния и некоторых других решений. Второй подход нашел применение при разработке МП Intersil 6100 и LSI-11, реализующих системы команд мини-ЭВМ PDP-8 PDP-11 соответственно. Третий подход позволяет разрабатывать микро-ЭВМ с любой ар-, хитектурой, с любой системой команд за счет использования микро-, 118 программирования. Он может быть реализован, например, с помощью МПК серий К584, К587, К589, Intel 3000, AM 2900 и подробно анализируется в гл. 8 и 9. Проблемная ориентация МП является основным фактором, влияющим на выбор его системы команд. Однако следует помнить, что назначение определяет желаемые архитектурные характеристики МП, но их практическая реализация часто связана с трудностями, вызванными технологическими органичениями: допустимой плотностью размещения элементов, максимальной рассеиваемой мощностью и числом внешних выводов корпуса. Окончательная система команд МП формируется в результате компромисса между желаемыми характеристиками и реальными ограничениями. § 3.10. СИСТЕМА КОМАНД 8-РАЗРЯДНОГО МП В качестве конкретного примера рассмотрим систему команд однокристального микропроцессора К580ИК80, который входит в МПК серии К580 (см. § 2.9). Система команд содержит команды трех форматов однобайтные, двухбайтные и трехбайтные. Содержимое первого байта указывает на формат команды, код операции, вид адресации и регистры или регистровые пары, если они участвуют в выполнении операции. При этом невозможно указать конкретные разряды, отведенные под первые три из указанных составляющих команды. Поэтому можно считать, что они кодируются как одно поле, занимающее в различных командах от двух до восьми разрядов первого байта. Будем называть это объединенное поле полем кода операции. Если в выполнении операции участвуют регистры, то один или два из них могут быть указаны в первом байте команды; при этом под номера регистров в поле команды отводятся вполне определенные разряды: три младших (&2 - Ьо) кодируют номер регистра-источника, содержащего операнд, а три средних (bj - bg) - номер регистра-приемника, в который засылается результат операции. В тех случаях, когда оба или один из этих регистров не участвуют в выполнении операции, соответствующие разряды используются под код операции. Принято следующее кодирование номеров регистров; 000 - регистр В, 100 - регистр Н, 001 - регистр С 101 - регистр L, 010 - регистр D НО - ячейка памяти, 011 - регистр Е, 111 - аккумулятор А. Код НО является признаком косвенной адресации к памяти с помощью 16-разрядного адреса, размещенного в регистрах Н и L. В зависимости от расположения этого кода в команде к соответствующей ячейке памяти производится обращение или за операндом, или для записи результата операции. Ряд команд МП предусматривает обработку или передачу чисел двойной длины. В этих случаях пары регистров В и С, D и Е или Н и L объединяются .в .16-разрядные регистры, имеющие номера 00, 01 или 10 соответственно. Под номера регистровых пар в командах отводятся разряды &2 и h (регистр-источник), и (регистр-приемник), а разряды и Ьа используются для указания кода операции. К двухбайтным командам в МП К580ИК80 относятся команды с непосредственной адресацией и команды ввода - вывода. Соответственно второй байт команды этой группы содержит 8-разрядный операнд или 8-разрядный адрес устройств ввода или вывода. В трехбайтных командах второй и третий байты содержат 16-разрядные адреса (в командах с прямой адресацией к памяти) или 16-разрядные операнды (в командах загрузки регистровых пар и указателя стека). После выполнения каждой операции в АЛУ вырабатывается пять признаков, значения которых могут влиять на выполнение последующих команд обработки информации (но не всех) и условной передачи управления: признак нулевого результата Z, признак отрицательного результата (значение CTajInietO разряда) N, признак переноса С, признак полупереноса (из млаДшей тетрады в старшую) Н и признак четности результата Р, Однако следует иметь в виду, что различные команды по-разному влияют на отдельные признаки. Для удобства сохранения и восстановления состояния МП во время прерываний и перехода к подпрограммам все признаки собраны водном регистре - регистре признаков. Полностью система команд МП дана в табл. 3.7. Там же для каждой команды указывается, как после ее выполнения изменяется значение каждого признака: устанавливается в соответствии с результатом операции (+), не изменяется (-), сбрасывается в нуль (0) или устанавливается в единицу (1). Некоторых дополнительных пояснений требуют команды сравнения (СМР и CPI), повторного запуска (RST) и десятичной коррекции (DAA). Отличие команд сравнения СМР и CPI от команд вычитания SUB и SBI соответственно, заключается в том, что сравнение выполняется без изменения содержимого аккумулятора (и регистра). Результатом сравнения являются значения признаков. Особенностью команды RST является то, что ее код передается в МП по шине данных от источника запроса на прерывание. Это происходит после того, как МП входит в режим прерывания и вырабатывает признак ШТА= 1 в слове состояния (см. § 2.9). Код команды RST содер-держит три разряда адреса прерывающей программы, которая обеспечивает обслуживание запроса от данного источника. По этой команде содержимое программного счетчика МП записывается в стек, а в программном счетчике устанавливается 16-разрядный адрес прерывающей I программы, состоящий из 3-разрядного адреса из команды RST и нулей в остальных разрядах. Таким образом передается управление одной из восьми возможных прерывающих программ. По команде десятичной коррекции результат переводится из двоичной системы счисления в двоично-десятичную. Операнды команд сложения, после которых используется команда десятичной коррекции, должны быть представлены в двоично-десятичной системе (см. § 3.6). 120 Таблица 3.7 Мнемоническое обозначение команды MVI INR DCR ADD SUB SBB ANA XRA ORA CPP ADI ACI SUI SBI ORI CPI RCL RRG RAL RAR Содержание команды Передать содержимое одного регистра, в другой Загрузить регистр вторым байтом команды Увеличить содержимое регистра на 1 Уменьшить содержимое регистра на 1 К содержимому аккумулятора прибавить содержимое регистра К содержимому аккумулятора прибавить содержимое регистра с учетом состояния триггера переноса Вычесть из содержимого аккумулятора содержимое регистра Вычесть из содержимого аккумулятора содержимое регистра с учетом состояния триггера переноса (заема) Выполнить логическое умножение содержимого .аккумулятора и регистра Выполнить операцию неравнозначности содержимого аккумулятора и регистра Выполнить операцию логического сложения содержимого аккумулятора и регистра Сравнить содержимое аккумулятора и регистра К содержимому аккумулятора прибавить второй байт команды К содержимому аккумулятора прибавить второй байт команды с учетом состояния триггера переноса Из содержимого аккумулятора вычесть второй байт команды Из содержимого аккумулятора вычесть второй байт команды с учетом состояния триггера переноса (заема) Выполнить логическое умножение содержимого аккумулятора и второго байта команды Выполнить операцию неравнозначности над содержимым аккумулятора и вторым байтом команды Выполнить логическое сложение содержимого аккумулятора и второго байта команды Сравнить содержимое аккумулятора и второго байта команды Сдвинуть влево циклически содержимое аккумулятора Сдвинуть вправо циклически содержимое аккумулятора Сдвинуть влево циклически содержимое аккумулятора через триггер переноса Сдвинуть вправо циклически содержимое аккумулятора через триггер переноса Признаки ZN СНР -15 6 7 + + - + + + + + + + -ь + + +-ь + + + + + + + + + + + 4-0+-f + +0 О + + +0 0 + + + + + + + + + + + + + + + +- + + + + + + + + + + + + 0 0+1 + + 0 0+ + +00 + +++ + + 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [ 19 ] 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 0.01 |