Лекция №7. Система команд однокристального микропроцессора
Содержание лекции:форматы команд, способы адресации, система команд, форма написания программы на языке ассемблера. Цели лекции:изучить форматы команд, основные способы их адресации, разобраться с механизмом действия команд. Для того чтобы МП выполнил серию последовательных операций нужна программа. Если она написана на языке высокого уровня, например, на PL/M или СИ, то необходимо знать только язык программирования. При написании программы на языке ассемблера необходимо знать систему команд, то есть знать, какие операции выполняются МП. Восьмиразрядный МП 8080А имеет вполне определенное количество команд, равное 78, поэтому его называют МП с жесткой системой команд, наращивать и изменять которые нельзя. Каждая команда имеет определенную структуру (формат), в которой можно выделить поле кода операции (КОП) и поле операнда, определяющее числа (операнды), участвующие в операции в соответствии с КОП. Для команд используются три вида формата: 1) однобайтный, в котором несколько старших разрядов отводится под КОП, а остальные под адресацию операндов; 2) двухбайтный, в котором первый байт отводится под КОП, а второй – под восьмиразрядный операнд или номер устройства ввода-вывода; 3) трехбайтный, в котором первый байт отводится под КОП, а второй и третий – под шестнадцатиразрядный операнд или адрес ячейки памяти. Способ определения операнда на основе структуры команды называется способом адресации. Использование нескольких способов адресации расширяет возможности при составлении программы. Выбор того или иного способа адресации определяется: - минимальным объемом памяти для хранения программы; - наименьшим временем выполнения программы; - набором команд, которыми располагает данный МП. Поскольку техника адресации редко удовлетворяет сразу обоим первым требованиям, находят компромиссное решение. Наибольшее распространение получили следующие способы адресации: а) прямая адресация. При этом способе адресации за КОП должен следовать адрес данных, участвующих в операции. Этим адресом может быть адрес памяти (трехбайтная команда), имя регистра (однобайтная команда), номер порта ввода или вывода (двухбайтная команда); б) непосредственная адресация. При этом способе адресации операнд сразу следует за КОП., то есть его не надо искать, он находится в «теле» команды. Операнды хранятся в памяти непосредственно за ячейкой, содержащей КОП. Команды с непосредственной адресацией бывают двухбайтные (КОП – восьмиразрядный операнд) и трехбайтные (КОП – шестнадцатиразрядный операнд); в) косвенная адресация. При этом способе адресации фактически используются два адреса. Первый трехразрядный адрес находится в «теле» команды и является символическим именем одного из регистров регистровой пары, в которой находится второй шестнадцатиразрядный адрес операнда, хранимого в ячейке памяти. Команды косвенной адресации обычно имеют однобайтный характер. Косвенная адресация часто сочетается с другими видами адресации, например, непосредственная косвенно-регистровая адресация. Условно систему команд можно разбить на пять групп: 1) команды пересылок; 2) команды арифметических операций; 3) команды логических операций; 4) команды перехода; 5) специальные команды. В дальнейшем, при написании команд используется символический язык и приняты следующие обозначения: R – один из РОН (B,C,D,E,H,L) или аккумулятор; RP – одна из регистровых пар (BC,DE,HL,SP): D8 – восьмиразрядный операнд; D16 – шестнадцатиразрядный операнд. В таблице 5 представлены трехразрядные коды, соответствующие именам регистров общего назначения и ячейке памяти М (memory), адрес которой определяется содержимым регистровой пары HL.
Т а б л и ц а 5
Команды пересылок осуществляют передачу данных из одного блока в другой, при этом сначала определяют приемник, а потом источник данных. Если работают с ячейкой памяти, то ее адрес определяется содержимым регистровой пары HL (старший байт в H, а младший – в L). Рассмотрим действие некоторых команд пересылок:
Команды арифметических операцийвыполняются в АЛУ МП. К ним относятся операции сложения и вычитания. Один из операндов при этих операциях всегда помещается в аккумулятор, а второй операнд помещается в регистр или ячейку памяти. Результат операции помещается в аккумулятор, стирая операнд, который раньше там хранился. К командам арифметического сложения относятся:
К командам вычитания относятся:
Команды логических операцийпозволяют выполнять следующие действия:
CMP R; A – R – сравнение двух чисел; RLC – циклический сдвиг влево на один разряд, причем старший разряд замещает младший и одновременно разряд триггера переноса; RRC - циклический сдвиг вправо на один разряд, причем младший разряд замещает старший и одновременно разряд триггера переноса. Команды передачи управления предназначеныдля изменения нормального последовательного хода программы путем ее прерывания подачей одной из команд передачи управления. Рассмотрим два типа команд: 1) безусловные, по которым переход в программе осуществляется по адресу, который указывается в команде. Например, команда JMP D16 отправляет по адресу D16; 2) условные, по которым переход осуществляется только при появлении какого-либо условия, формируемого регистром признаков: NZ – не нуль, Z – нуль, NC – нет переноса, C – перенос, PO – нечетность, PE – четность, P – плюс, M – минус. Прибавляя символ условного перехода J к обозначению того или иного признака получаем команду условного перехода. Например, команда JNZ D16 выполняется при ненулевом результате предыдущей операции и отправляет по адресу D16. Специальные командыне передают и не обрабатывают информацию, а используются для управления МП. Команда HLT позволяет остановить выполнение программы, а команда NOP не задает выполнение операции, а позволяет перейти к очередной команде с задержкой на четыре такта Т. Команды EI и DI обеспечивают программное разрешение или запрет режима прерывания соответственно. Достоинством языка ассемблера является то, что все элементы программы представлены в символической форме, отражающей их содержательный смысл.Преобразование символических имен команд в двоичные коды возлагается на специальную программу – ассемблер. При наличии в программе синтаксических ошибок ассемблер в процессе трансляции выдает сообщения об ошибках. Каждая строка ассемблера соответствует одной команде или директиве и может содержать четыре поля:
Популярное: Почему стероиды повышают давление?: Основных причин три... Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... ![]() ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (667)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |