October 16 2017 23:01:18
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
СИСТЕМА КОМАНД
ОСНОВЫ ПОСТРОЕНИЯ МИКРОПРОЦЕССОРНЫХ СИСТЕМ

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

  1. пересылки данных;

  2. ввода-вывода информации;

  3. арифметических и логических действий;

  4. переходов к другим участкам программы и подпрограммам.

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

Команды пересылки реализуют обмен информацией между микропроцессором и памятью, осуществляя чтение или запись данных. Так по команде, имеющей мнемокод MVI А, Х, микропроцессор выполнит чтение байта Х из ячейки памяти в аккумулятор. Ячейка, где хранится байт Х, является следующей после той, в которой записан код операции данной команды. При ее выполнении текущий адрес в регистре IP получит приращение на число байтов командного кода — таким образом программа будет продолжена с команды, следующей за MVI А, Х. Командные коды MOV A, M и MOV M, А обеспечат соответственно чтение и запись содержимого аккумулятора в ячейку, адрес которой хранится в регистрах H, L. При завершении этих команд содержимое IP будет указывать на очередную команду также, как и при выполнении MVI А, Х. Считывание командного кода, а также процессы чтения и записи данных синхронизируются сигналами img161 и img162.

Команды ввода-вывода отличаются от команд пересылки тем, что осуществляют информационное взаимодействие микропроцессора с ячейками УВВ, называемых портами. В мнемокодах этих команд указывают адрес ячейки, называемый номером порта, с которой производят обмен. Например по команде OUT F8 содержимое аккумулятора будет записано в ячейку с адресом 00F8h, а по команде IN F8 микропроцессор считает данные из этой ячейки в аккумулятор. В этом случае синхронизация считывания кодов команд осуществляется сигналом img163, а чтение и запись данных — img164 и img165.

Арифметические и логические команды производят одноименные действия с данными. Например при выполнении команды ADD С произойдет арифметическое сложение содержимого аккумулятора и регистра С, а результат суммы снова будет помещен в аккумулятор. Команда ОRA D реализует логическую функцию поразрядного ИЛИ данных в аккумуляторе и регистре D, результат выполнения которой также будет записан в аккумулятор.

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

  1. организацию циклического выполнения одной или нескольких команд программы;

  2. переход от основной программы к подпрограмме и возврат из нее снова в основную программу.

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

Программа 2.1

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

LXI SP, 0900
Начало программы.
Запись в регистр SP адреса вершины стека 0900h.

MVI B, 63 Запись в регистр В числа 63h.

MVI C, 01 Запись в регистр С числа 01h.
START: MOV A, C
Начало цикла START.
Запись в аккумулятор содержимого регистра С.

OUT F8 Вывод содержимого аккумулятора в порт с адресом 00F8h.

RLC Циклический сдвиг содержимого аккумулятора влево (удвоение результата).

MOV C, A Запись содержимого аккумулятора в регистр С.

MOV A, B Запись в аккумулятор содержимого регистра В.

OUT F9 Вывод в порт с адресом 00F9h значения в аккумуляторе.

CALL TIME Вызов подпрограммы TIME.

JMP START Переход к началу цикла.
Конец цикла START.
Конец программы.

Подпрограмма 2.1

МЕТКА МНЕМОКОД КОММЕНТАРИЙ
TIME: LXI D, AFF0 Начало подпрограммы TIME. Запись числа AFF0h в регистровую пару DE.
CYCLE: DCX D Начало цикла CYCLE. Уменьшение содержимого регистра D на 1 (декремент).

MOV A, D Запись в аккумулятор содержимого регистра D.

ORA E Поразрядное логическое ИЛИ аккумулятора и регистра Е. Результат помещается обратно в аккумулятор.

JNZ CYCLE Если результат в аккумуляторе не равен 0 (значение результата определяется по флагу Z регистра F), то перейти к началу цикла CYCLE, в противном случае перейти к следующей команде.
Конец цикла CYCLE.

RET Возврат в основную программу.
Конец подпрограммы TIME.
Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.05 секунд 2,254,110 уникальных посетителей