Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Система команд однокристального микропроцессора

Содержание лекции:

- форматы команд, способы адресации, система команд, форма написания программы на языке ассемблера.

Цели лекции:

- изучить форматы команд, основные способы их адресации, разобраться с механизмом действия команд.

Для того, чтобы МП выполнил серию последовательных операций нужна программа. Если она написана на языке высокого уровня, например, на 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

РОН и М B C D E H L M A
Коды                

 

Команды пересылок осуществляют передачу данных из одного блока в другой, при этом сначала определяют приемник, а потом источник данных. Если работают с ячейкой памяти, то ее адрес определяется содержимым регистровой пары HL (старший байт в H, а младший – в L). Рассмотрим действие некоторых команд пересылок:

MOV Rd,Rs; Rd Rs – отправка содержимого регистра источника (Rs) в регистр приемник (Rd);

MVI R,D8; R D8 – отправка восьмиразрядного операнда в регистр R;

LDA D16; A M (D16); - загрузка в аккумулятор содержимого ячейки памяти, адрес которой определяется числом D16;

LXI RP,D16; RP D16 – загрузка регистровой пары RP числом D16;

OUT D8; ПОРТ(D8) A – содержимое аккумулятора передается в порт с номером D8;

IN D8; A ПОРТ(D8) – содержимое порта с номером D8 передается в аккумулятор.

PUSH RP; SP – 1 Rh; SP – 2 Rl; SP SP – 2 – содержимое старшего регистра (Rh) регистровой пары отправляется в ячейку памяти по адресу, который на единицу меньше содержимого указателя стека SP, а содержимое младшего регистра (Rl) – в ячейку памяти, адрес которой меньше содержимого SP на два.

POP RP; Rl SP; Rh SP + 1; SP SP + 2 - содержимое ячейки памяти, адрес которой определяется содержимым SP, засылается в Rl, а содержимое ячейки памяти, адрес которой на единицу меньше содержимого SP засылается в Rh. Содержимое регистра SP увеличивается на два.

Команды арифметических операций выполняются в АЛУ МП. К ним относятся операции сложения и вычитания. Один из операндов при этих операциях всегда помещается в аккумулятор, который неявно адресуется КОП, а второй операнд помещается в регистр (ячейка памяти), имя которого определяется трехразрядным двоичным кодом, следующим за КОП. Результат операции помещается в аккумулятор, стирая операнд, который раньше там хранился. К командам арифметического сложения относятся:

ADD R; A A + R - сложение содержимого аккумулятора с содержимым заданного регистра;

ADI D8; A D8 + A – сложение числа D8 с содержимым аккумулятора;

ADC R; A A + R + CY – сложение операндов с учетом признака переноса СY;

INR R; R R + 1 – инкремент, или увеличение на единицу содержимого регистра или ячейки памяти

К командам вычитания относятся:

SUB R; A A – R – вычесть из содержимого аккумулятора содержимое регистра или ячейки памяти;

SUI D8; A A – D8 - вычесть из содержимого аккумулятора восьмиразрядное двоичное число;

SBB R; A A – R – CY – вычитание операндов с учетом признака переноса CY (заем);

DCR R; R R – 1 – декремент или уменьшение на единицу содержимого регистра или ячейки памяти

Команды логических операций позволяют выполнять следующие действия:

ANA R; A A R – логическое умножение И;

ORA R; A A R – логическое сложение ИЛИ;

XRA R; A A R - исключающее ИЛИ;

CMA – А А – обратный код содержимого аккумулятора;

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 обеспечивают программное разрешение или запрет режима прерывания соответственно.

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

Каждая строка ассемблера соответствует одной команде или директиве и может содержать четыре поля:

 

МЕТКА КОД ОПЕРАНД КОММЕНТАРИЙ

STORE: STA 8000H Запомнить содержимое

аккумулятора в ячейке памяти с адресом 8000

MVI С,ОАН Загрузить в регистр С число A

MASK EQU 0FH Директива эквивалентность

 

Метка (в программе необязательна) используется для символического обозначения адреса перехода команд передачи управления. Поле КОД содержит символическое имя выполняемой команды или директивы, например, MOV - переслать, ADD - сложить, ORG – начальный адрес массива, END – прекращение трансляциии т.д. Поле ОПЕРАНД определяется в зависимости от поля КОД и может содержать один или несколько операндов, разделенных запятой, в качестве которых используются данные и символические обозначения внутренних регистров МП. Поле КОММЕНТАРИЙ содержит пояснение тех действий, которые производятся командой. Содержание этого поля ассемблером игнорируется.

ЛЕКЦИЯ №8

<== предыдущая лекция | следующая лекция ==>
Типовые схемы сопряжения микропроцессорной системы | Принципы организации микропроцессорной системы
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 709; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.