Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Язык Ассемблера микропроцессора КР 580 ВМ 80A

Мурманск | Устройство и принцип работы составных частей лабораторной МПС | Основные сведения о работе лабораторной МПС | Описание микропроцессора КР 580 ВМ 80А | Слово состояния МП и системная шина управления | Извлечение кода команды, данных из памяти или внешнего устройства | Запись данных в память или внешнее устройство | Выполнение команд по циклам и программ по шагам | Описание клавиатуры | Описание функция системного монитора |


Читайте также:
  1. Ассемблер. Мнемоника и символические имена. Директивы ассемблера.
  2. Действия команд микропроцессора КР580ИК80А
  3. Директивы ассемблера ASM-51
  4. Описание микропроцессора КР 580 ВМ 80А
  5. Система команд микропроцессора КР580ИК80А
  6. Система команд микропроцессора. Основные характеристики команд. Способы адресации.
  7. Система команд микропроцессора. Примеры написания программ.

 

Из предыдущих разделов ясно, что машинная программа представляет собой последовательности из наборов нулей и единиц стандартной длины, называемых машинными кодами. Для того, чтобы составленная программа правильно выполнялась, необходимо каждый двоичный разряд ее машинных кодов совершенно точно определить. При записи программы непосредственно на языке машинных кодов программист должен помнить, какой код соответствует какой команде МП (команд больше 200), а также вставлять нужные адреса для каждого элемента данных, используемых в программе в соответствующем месте. Этот процесс крайне утомителен и при непосредственном программировании в машинных кодах возможно появление ошибок. Поэтому программирование даже сравнительно простой задачи вызывает трудности и требует больших затрат времени. Когда микропроцессоры находились еще на ранней стадии развития, программы записывались именно в машинных кодах. Однако сегодня программист может использовать ряд средств, упрощающих задачу создания надежных программ достаточно высокой степени сложности. Одним из таких средств является язык Ассемблера, который позволяет записывать программу с использованием более удобных мнемонических выражений языка Ассемблера - языка, тесно связанного со списком команд микропроцессора и транслируемого (переводимого) в машинную программу с помощью специального алгоритма.

Основным положением, лежащим в основе программирования на языке Ассемблера, является то, что имена составленные из букв, более осмысленны и поэтому легче и безошибочно запоминаются. Поэтому в языке Ассемблера каждой команде, каждому регистру и каждой важной ячейке памяти присваивается имя (ячейка памяти может быть занята командой или элементом данных). Так, например, вместо машинного кода команды 01111000 программист записывает команду Ассемблера

MOV А, В

если он желает переслать содержимое регистра В в регистр А, и Ассемблер транслирует эту запись в машинный код 01111000 или, как говорят программисты, генерирует объектный код из исходной команды.

Таким образом, условное буквенно-цифровое (мнемоническое) обозначение машинных кодов команд позволяет легче запомнить их функции и значительно упрощает написание программы.

Большинство команд МП служит для указания микропроцессору на необходимость выполнения определенных операций над определенными данными. Поэтому в двоичном наборе данной команды содержится код операции и одно или более адресных полей, в зависимости от того, сколько элементов данных (операндов) участвует в выполнении этой команды.

Некоторые команды имеют также сопутствующие данные в зависимости от способа адресации. Всего существует (в данном МП) три способа адресации:

- непосредственная адресация. В этом случае непосредственно за первым байтом (кодом команды) располагаются данные. Если данные имеют длину один байт, то их будем обозначать D8 или #. Если данные имеет длину два байта, то их будем обозначать D16 или &;

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

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

Соответственно команды могут иметь переменную длину. Команда без сопутствующей информации занимает всего один байт, команда с байтом данных или с номером порта ВУ занимает два байта, а команда с адресом или с двухбайтовыми данными - три байта.

В дальнейших объяснениях будет широко использоваться понятие стека. Стек представляет собой чрезвычайно важный тип запоминающего устройства. В микропроцессорах стек может быть реализован аппаратным или программным способом. Стек отличается от обычного ОЗУ с произвольной выборкой адресов элементов памяти тем, что при каждом обращении к нему можно адресовать не произвольный элемент памяти, а только соседний по отношению к предыдущему использованному. Элементы стека адресуются с помощью специального регистра - указателя стека SP, в котором всегда содержится адрес верхнего элемента массива стековой памяти. В МП КР 580 ВМ 80А стек реализован программным способом, то есть он представляет собой просто часть памяти ОЗУ, резервируемую программистом для запоминания информации. В МП КР 580 ВМ 80А стек заполняется "снизу-вверх", то есть перед началом работы с ним программист должен указать "дно" стека. Это можно сделать с помощью команды загрузки адреса "дна" в указатель стека, например, с помощью команды

LX 1 SP, 0820 (указано "дно" = 0820).

Теперь при первом обращении к стеку для записи указатель SP перед записью автоматически уменьшит свое значение на 1, то есть будет указывать на ячейку с адресом 081F и именно туда будут помещены данные. При втором обращении для записи указатель SP снова уменьшит на 1 свое значение и так далее. При чтении из стека, после того как данные будут прочитаны из ячейки, на которую указывает SP, его значение будет автоматически увеличено на 1 и т.д.

Теперь рассмотрим команды МП и укажем их мнемонику. Рассмотрение команд МП удобно проводить, разбив их на 9 групп:

1) команды однобайтовых пересылок данных;

2) команды двухбайтовых пересылок данных;

3) команды ввода/вывода;

4) команды обмена;

5) команды арифметических и логических операций с одним операндом;

6) команды арифметических и логических операций с двумя операндами;

7) команды сдвигов содержимого аккумулятора;

8) команды передачи управления и работы с подпрограммами;

9) специальные команды.

Все команды микропроцессора, распределенные по группам и их мнемонические обозначения сведены в нижней части таблицы 5.1.

Далее даются пояснения смысла команд. Условные обозначения, используемые при этом, приведены в нижней части таблицы 5.1.

При ознакомлении с командами обращайте внимание на то, как влияет выполнение команды на установление разделов регистра признаков F. Характер воздействия отмечен верхними штрихами у мнемокода команды (см. условные обозначения в нижней части таблицы 5.1).

 


Дата добавления: 2015-07-20; просмотров: 439 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Определение контрольной суммы массива памяти (КС)| Группа команд однобайтовых пересылок

mybiblioteka.su - 2015-2024 год. (0.008 сек.)