Автор: Пользователь скрыл имя, 27 Октября 2013 в 08:45, курс лекций
На своем рабочем уровне МП выполняет список операций, называемый машинной программой.
Машинная программа - программа, написанная на машинном языке.
Программа - упорядоченный список команд или операторов, выполняя которые микро – ЭВМ осуществляет решение задачи.
Машинный язык - язык, непосредственно используемый МП. Программа на машинном языке не требует интерпретации.
Операторы машинного языка записываются в двоичных кодах.
DCR M - содержимое памяти, адрес которой находится в паре регистров HL, уменьшается на единицу, .
При выполнении этих команд
устанавливаются все
INX rp - содержимое пары регистров rp увеличивается на единицу,
.
DCX rp - содержимое пары регистров rp уменьшается на единицу,
.
При выполнении команд INX и DCX никакие индикаторы не устанавливаются.
Команды десятичной арифметики
В МП Intel 8080 к указанной группе команд относится только одна команда, а именно команда десятичной коррекции аккумулятора. Её формат следующий
DAA , .
6. Логические команды
MП способны производить логическую обработку информации. Микро-ЭВМ может заменить множество логических схем.
Команды манипуляции битами
К этой группе относятся команды логических операций И, ИЛИ, ИСКЛ. ИЛИ, НЕ. Все логические операции являются побитовыми, а результат устанавливается в соответствии с их таблицами истинности. Логические операции выполняются всегда над содержимым аккумулятора и другим байтом из регистра или памяти. По окончании логической операции результат загружается в аккумулятор. Значение бита переноса CY от результата выполнения логических команд И, ИЛИ, ИСКЛ. ИЛИ не зависит. Основные характеристики этих команд представлены в следующей таблице.
Операция |
Адресация |
Мнемоника |
КОП |
Байты |
Формат команд |
Символика |
А И данные |
Непосредственная |
ANI |
E6 |
2 |
КОП данные |
|
А И регистр |
Регистровая |
ANA r |
….. |
1 |
КОП |
|
А И LOC(HL) |
Косвенная |
ANA M |
A6 |
1 |
КОП |
|
A ИЛИ данные |
Непосредственная |
ORI |
F6 |
2 |
КОП данные |
|
А ИЛИ регистр |
Регистровая |
ORA r |
….. |
1 |
КОП |
|
А ИЛИ LOC (HL) |
Косвенная |
ORA M |
B6 |
1 |
КОП |
|
А ИЛИ ИСКЛ. данные |
Непосредственная |
XRI |
EE |
2 |
КОП данные |
|
А ИЛИ ИСКЛ. регистр |
Регистровая |
XRA r |
….. |
1 |
КОП |
|
А ИЛИ ИСКЛ. LOC (HL) |
Косвенная |
XRA M |
AE |
1 |
КОП |
|
Инвертировать А |
Неявная |
CMA |
2F |
1 |
КОП |
Часто возникает необходимость сравнить два двоичных числа. Команды сравнения вычитают содержимое регистра или ячейки памяти из содержимого аккумулятора, но не изменяют данных ни того ни другого. Индикаторы подвержены влиянию результата сравнения. Применение этих команд позволяет принимать решения в ходе выполнения программы. Краткая характеристика команд сравнения приведена ниже.
Операция |
Адресация |
Мнемоника |
КОП |
Байты |
Символика |
Индикаторы |
Сравнить А с данными |
Непосредственная |
CPI |
FE |
2 |
||
Сравнить A с регистром r |
Регистровая |
CMP r |
….. |
1 |
||
Сравнить А с LOC (HL) |
Косвенная |
CMP M |
BE |
1 |
Команды сдвига
Необходимо различать команды простого сдвига и циклического сдвига. Эти команды влияют на разряды регистра состояния. Разряд переноса участвует в выполнении этих команд и его значение изменяется по мере передачи данных. Рассмотрим четыре команды сдвига.
RAL - циклический сдвиг аккумулятора
влево
, ,
RAR - циклический сдвиг аккумулятора вправо
, ,
При использовании команд циклического сдвига не происходит потерь данных, поскольку данные перемещаются по замкнутому контуру. Если выполнить циклический сдвиг девять раз, то окончательное содержимое аккумулятора и разряда переноса полностью совпадёт с исходным.
RLC - сдвиг содержимого аккумулятора влево
, ,
RRC - сдвиг содержимого аккумулятора вправо
, ,
7. Команды передачи управления (ветвления)
Команды перехода (ветвления) позволяют изменять последовательность выполнения команд программы. Бывают команды безусловного и условного перехода. Сведения об основных командах перехода представлены в следующей таблице.
Операция |
Адресация |
Мнемоника |
КОП |
Байты |
Формат команды |
Символика |
Переход |
Прямая |
JMP |
C3 |
3 |
КОП Мл. адрес Ст. адрес |
|
Перейти если 0 |
___ |
JZ |
CA |
3 |
___ |
|
Перейти если не 0 |
___ |
JNZ |
C2 |
3 |
___ |
|
Перейти если перенос |
___ |
JC |
DA |
3 |
___ |
|
Перейти если нет переноса |
___ |
JNC |
D2 |
3 |
___ |
Первая команда в таблице является командой безусловного перехода. Команды передачи управления (перехода) являются средством изменения содержимого счётчика команд и, следовательно, изменения последовательности выполнения программы. Команды перехода во 2 и 3 байтах содержат адрес, который загружается в счётчик команд. Этот адрес указывает на ячейку памяти, содержащей команду, которая должна выполняться следующей.
Команды условного перехода проверяют значения разрядов регистра признаков и определяют последующий ход выполнения программы в зависимости от результата проверки. Эти команды повлекут за собой загрузку адреса в счётчик команд только если условия будут выполнены. В противном случае PC будет инкрементирован нормально.
Команды ветвления используют для формирования циклов программы.
8. Команды работы с подпрограммой
Команды вызова подпрограммы (CALL) и возврата из неё (RET) всегда используются парами. При их выполнении содержимое регистра признаков (индикаторы) не изменяется. Характеристики команд представлены в таблице.
Операция |
Адресация |
Мнемоника |
КОП |
Байты |
Формат команды |
Символика |
Вызов подпрограммы |
Прямая |
CALL |
CD |
3 |
КОП Мл. адрес Ст. адрес |
|
Возврат из подпрограммы |
Косвенная |
RET |
C9 |
1 |
КОП |
Команда CALL сочетает функции операций загрузки в стек и перехода. Сначала загружается в стек содержимое счётчика команд. Затем PC должен быть загружен новым адресом для выполнения перехода в подпрограмму.
9. Прочие команды
Операция |
Адресация |
Мнемоника |
КОП |
Байт |
Формат команды |
Символика |
Нет операций |
Неявная |
NOP |
00 |
1 |
КОП |
____ |
Останов |
Неявная |
HLT |
76 |
1 |
КОП |
____ |
Повторный пуск |
Неявная |
RST |
….. |
1 |
КОП |