
- •Тема 2.5 Основы программирования процессора
- •1 Оперативная память, регистры, представление данных
- •1.Программная модель микропроцессорной системы на основе мп кр580вм80
- •2.Формат данных и структура команд языка ассемблер
- •3 Формат команд
- •4 Методы адресации
- •5 Система команд
- •6 Команды передачи данных и ввода-вывода
- •6.1 Команды передачи данных
- •6.2 Команды ввода-вывода
- •6.3 Команды работы со стеком
- •7 Команды обработки данных
- •Арифметические команды
- •Логические команды
- •8 Команды управления
- •1.Команды условного и безусловного переходов
- •2.Команды вызова подпрограмм и возврата из них, программное прерывание
- •9 Составление программ
2.Формат данных и структура команд языка ассемблер
Память МП КР580ВМ80 представляет собой массив 8-ьитных слов, называемых байтами, Каждый байт имеет свой 16-разрядный адрес, определяющий его положение в последовательности ячеек памяти. МП может адресовать 65536 байт памяти, которая может содержать как в ПЗУ, так и в ОЗУ.
Формат данных
Данные хранятся в памяти в виде 8-битных слов:
D7 D6 D5 D4 D3 D2 D1 D0
Младшим битом является бит 0, старшим – бит 7.
Команда характеризуется форматом, т. е. числом отведенных для нее разрядов, которые разделены побайтно на определенные функциональные поля.
3 Формат команд
Команды МП КР580ВМ80 имеют одно, двух или трехбайтный формат. Многобайтные команды должны быть размещены в соседних ЯП. Формат команды зависит от особенностей выполняемой операции.
Первый байт команды содержит код операции, записанный в мнемоническом виде.
Он определяет формат команды и те действия, которые должны быть выполнены МП над данными в процессе ее выполнения, и способ адресации, а также может содержать информацию о нахождении данных.
Во втором и третьем байтах могут находиться данные, над которыми производятся операции, или адреса, указывающие местонахождение данных. Данные, над которыми производятся действия, называются операндами.
Формат однобайтовой команды в соответствии с рисунком 2
Код операции |
Рисунок 2
Формат двухбайтовой команды в соответствии с рисунком 3
Код операции |
Операнд (адрес) |
15 8
Рисунок 3
Формат трехбайтовой команды в соответствии с рисунком 4
Код операции |
Адрес (операнд). Младший байт адреса |
Адрес (операнд). Старший байт адреса |
15 8
23 16
Рисунок 4
В командах на языке ассемблера код операции имеет сокращённую форму записи английских слов – мнемоническое обозначение. Мнемоника (от греческого mnemonic – искусство запоминания) позволяет легче запомнить команды по их функциональному назначению.
Перед исполнением исходная программа переводится с помощью программы трансляции, называемой ассемблером, на язык кодовых комбинаций – машинный язык, в таком виде размещается в памяти МП и далее используется при выполнении команды.
4 Методы адресации
Все коды операндов (входные и выходные) должны где-то располагаться. Они могут находиться во внутренних регистрах МП (наиболее удобный и быстрый вариант). Они могут располагаться в системной памяти (самый распространенный вариант). Наконец, они могут находиться в устройствах ввода-вывода (наиболее редкий случай). Определение места положения операндов производится кодом команды. Существуют разные методы, с помощью которых код команды может определить, откуда брать входной операнд и куда помещать выходной операнд. Эти методы называются методами адресации.
Для МП КР580ВМ80 существуют следующие методы адресации:
непосредственная;
прямая;
регистровая;
косвенная;
стековая.
Непосредственная адресация предполагает, что операнд (входной) находится в памяти непосредственно за кодом команды. Операнд обычно представляет собой константу, которую надо куда-то переслать, к чему-то прибавить и т. д. данные содержатся во втором или во втором и третьем байтах команды, причем младший байт данных находится во втором байте команды, а старший – в третьем байте команды.
Прямая (она же абсолютная) адресация предполагает, что операнд (входной или выходной) находится в памяти по адресу, код которого находится внутри программы сразу же за кодом команды. Используется в трехбайтовых командах.
Регистровая адресация предполагает, что операнд (входной или выходной) находится во внутреннем регистре МП. Используется в однобайтовых командах
Косвенная (неявная) адресация предполагает, что во внутреннем регистре МП находится не сам операнд, а его адрес в памяти.
Стековая адресация предполагает, что команда не содержит адрес. Адресация к ячейкам памяти по содержимому 16-разрядного регистра SP (указателя стека).