- •А.Ю.Бальзамов о.В.Шишов
- •Введение
- •1. Представление информации в цифровых вычислительных машинах и микропроцессорных системах
- •1.1. Системы счисления
- •1.2. Перевод чисел из одной системы счисления в другую
- •1.3. Формыпредставлениячисел
- •Итак, диапазон представимых чисел в нормальной форме равен
- •1.4. Кодирование символов и знаков
- •1.5. Выполнение арифметических операций над числами с фиксированной запятой
- •1.6. Выполнение арифметических операций над числами с плавающей запятой
- •2. Система команд микропроцессора кр580вм80а
- •2.1. Программная модель микропроцессора
- •2.2. Форматы команд и способы адресации
- •2.3. Условные обозначения в системе команд
- •2.4. Команды передачи данных
- •2.4.1. Команды пересылки данных регистр - регистр или регистр - ячейка памяти с косвенной адресацией
- •Xchg (Exchange h and l with d and e)
- •2.4.2. Команды загрузки непосредственных данных
- •2.4.3. Команды обращения к памяти с прямой адресацией
- •2.4.4. Команды обращения к стеку
- •Xthl (Exchange stack top with h and l)
- •Inr r (Increment)
- •2.5.2. Арифметические команды с данными двойной длины
- •Inx rp (Increment register pair)
- •2.5.3. Арифметические команды с непосредственными данными
- •2.5.4. Логические команды
- •2.5.7. Вспомогательные команды
- •2.6. Команды управления
- •2.6.1. Команды безусловной передачи управления
- •2.6.2. Команды условной передачи управления
- •2.6.3. Специальные команды управления
- •2.7. Машинные коды команд
- •3. Средства отладки программного обеспечения
- •3.1. Учебно-отладочное устройство "Электроника-580"
- •3.1.1. Общие сведения
- •3.1.2. Устройство и работа уоу
- •3.1.3. Клавиатура пульта управления
- •3.1.4. Индикатор адреса и данных
- •3.1.5. Просмотр и изменение содержимого памяти и регистров
- •3.1.6. Работа с контрольными точками
- •3.1.7. Выполнение программ пользователя
- •3.2. Кросс-средства отладки программного обеспечения
- •3.2.1. Составление исходной программы
- •3.2.2. Программа ассемблирования avmac
- •3.2.3. Программа редактора связей avlink
- •3.2.4. Программа отладчика-симулятора avsim
- •4. Задания и практические рекомендации по выполнению лабораторных работ
- •4.1. Лабораторная работа №1. Простые вычисления
- •4.2. Лабораторная работа №2. Управление индикацией
- •4.3. Лабораторная работа №3. Объединение программ
- •4.4. Лабораторная работа №4. Сложные вычисления
- •4.5. Пример программы к лабораторной работе №1
- •4.6. Пример программы к лабораторной работе №2
- •4.7. Рекомендации по построению программы к лабораторной работе № 3
- •4.8. Пример программы к лабораторной работе №4
- •5. Задания для контрольных работ
- •5.1. Контрольная работа №1. Системы счисления и коды
- •5.2. Контрольная работа №2. Микропроцессорные системы
- •Вариант 9
- •Библиографический список
- •Содержание
- •Программирование и отладка программ на ассемблере Практикум по основам микропроцессорной техники
- •430000, Г. Саранск, ул. Советская, 24
2.6.2. Команды условной передачи управления
Мнемонические обозначения команд условной передачи управления включают символы –CON, обозначающие проверяемое в команде условие – нулевое или ненулевое значение признаков нуля Z, переноса CY, четности P или знака S (см. табл. 4). Таким образом, для каждой из команд возможно 8 вариантов. Например, варианты команд условного перехода: JZ, JNZ, JNC, JC, JPO, JPE, JP, JM.
J-CON ADR (Conditional jump)
Если CON=1, то ADR PC
Условный переход. Если условие истинно, то адрес перехода по программе определяется содержимым второго и третьего байтов команды, в противном случае продолжается выполнение программы
Циклов: 3
Тактов: 10
Признаки: отсутствуют
С-CON ADR (Condition call)
ЕслиCON=1,то<PC>M(<SP>-1)M(<SP>-2); <SP>-2SP; ADRPC
Условный переход к подпрограмме. Если условие истинно, то действия определяются выполнением команды CALL (см. выше), в противном случае продолжается выполнение программы.
Циклов: 3 / 5
Тактов: 11 / 17
Признаки: отсутствуют
R-CON (Condition return)
ЕслиCON=1,то<M(<SP>)M(<SP>+1)>PC; <SP>+2SP
Условный возврат из подпрограммы. Если условие истинно, то действия определяются выполнением команды RET (см. выше), в противном случае продолжается выполнение программы.
Циклов: 1 / З
Тактов: 5 / 11
Признаки: отсутствуют
2.6.3. Специальные команды управления
HLT (Halt)
Микропроцессор остановлен. Содержимое регистров и признаков не изменяется.
Циклов: 1
Тактов: 7
Признаки: отсутствуют
El (Enable interrupts)
Разрешена работа системы прерываний после выполнения следующей команды.
Циклов: 1
Тактов: 4
Признаки: отсутствуют
DI (Disable interrupts)
Запрещена работа системы прерываний непосредственно после данной команды.
Циклов: 1
Тактов: 4
Признаки: отсутствуют
NOP (No operations)
Пустая операция. Содержимое регистров и признаков не изменяется,
Циклов: 1
Тактов: 4
Признаки: отсутствуют
2.7. Машинные коды команд
Программа, написанная на языке ассемблера – с использованием символических обозначений всех ее полей, для выполнения в микропроцессоре должна быть преобразована в машинные коды. Коды операций - первые байты всех команд микропроцессора КР580ВМ80А в шестнадцатеричном виде могут быть определены с помощью таблицы 6. Формат первого байта изображен на рис. 5 и описан в разделе “Программная модель микропроцессора”. Вторые и третьи байты команд, если они имеются, содержат адреса, данные или номера портов ввода-вывода.
Для определения кода операции необходимо найти нужную команду в таблице, взять шестнадцатеричную цифру, соответствующую номеру столбца, в котором находится команда, и дополнить ее номером строки. Например, для команды LXI H, 8300H (символ H показывает, что число 8300 задано в шестнадцатеричном коде), находящейся в столбце с номером 2 и строке с номером 1, первый байт команды – 21. Второй байт этой трехбайтной команды – 00, третий – 83, так как сначала указывается младшая часть 16-битных данных или адреса, а затем уже старшая часть. Полный код команды LXI H, 8300H в шестнадцатеричном виде – 21 00 83.
Код однобайтной команды ADD B, находящейся в столбце с номером 8 и строке с номером 0 – 80. Код двухбайтной команды SUI 25 – D6 19, так как 25=19H (шестнадцатеричный код числа 25 равен 19) .
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
|
0 |
NOP
|
- |
- |
- |
MOV B, B |
MOV D, B |
MOV H, B |
MOV M, B |
ADD B |
SUB B |
ANA B |
ORA B |
RNZ |
RNC |
RPO |
RP |
0 |
1 |
LXI B, D16 |
LXI D,D16 |
LXI H,D16 |
LXI SP,D16 |
MOV B, C |
MOV D, C |
MOV H, C |
MOV M, C |
ADD C |
SUB C |
ANA C |
ORA C |
POP B |
POP D |
POP H |
POP PSW |
1 |
2 |
STAX B |
STAX D |
SHLD ADR |
STA ADR |
MOV B, D |
MOV D, D |
MOV H, D |
MOV M, D |
ADD D |
SUB D |
ANA D |
ORA D |
JNZ ADR |
JNC ADR |
JPO ADR |
JP ADR |
2 |
3 |
INX B |
INX D |
INX H |
INX SP |
MOV B, E |
MOV D, E |
MOV H, E |
MOV M, E |
ADD E |
SUB E |
ANA E |
ORA E |
JMP ADR |
OUT N |
XTHL
|
DI |
3 |
4 |
INR B |
INR D |
INR H |
INR M |
MOV B, H |
MOV D, H |
MOV H, H |
MOV M, H |
ADD H |
SUB H |
ANA H |
ORA H |
CNZ ADR |
CNC ADR |
CPO ADR |
CP ADR |
4 |
5 |
DCR B |
DCR D |
DCR H |
DCR M |
MOV B, L |
MOV D, L |
MOV H, L |
MOV M, L |
ADD L |
SUB L |
ANA L |
ORA L |
PUSH B |
PUSH D |
PUSH H |
PUSH PSW |
5 |
6 |
MVI B, D8 |
MVI D, D8 |
MVI H, D8 |
MVI M, D8 |
MOV B, M |
MOV D, M |
MOV H, M |
HLT
|
ADD M |
SUB M |
ANA M |
ORA M |
ADI D8 |
SUI D8 |
ANI D8 |
ORI D8 |
6 |
7 |
RLC |
RAL |
DAA |
STC |
MOV B, A |
MOV D, A |
MOV H, A |
MOV M, A |
ADD A |
SUB A |
ANA A |
ORA A |
RST 0 |
RST 2 |
RST 4 |
RST 6 |
7 |
8 |
- |
- |
- |
- |
MOV C, B |
MOV E, B |
MOV L, B |
MOV A, B |
ADC B |
SBB B |
XRA B |
CMP B |
RZ |
RC |
RPE |
RM |
8 |
9 |
DAD B |
DAD D |
DAD H |
DAD SP |
MOV C, C |
MOV E, C |
MOV L, C |
MOV A, C |
ADC C |
SBB C |
XRA C |
CMP C |
RET |
- |
PCHL |
SPHL |
9 |
A |
LDAX B |
LDAX D |
LHLD ADR |
LDA ADR |
MOV C, D |
MOV E, D |
MOV L, D |
MOV A, D |
ADC D |
SBB D |
XRA D |
CMP D |
JZ ADR |
JC ADR |
JPE ADR |
JM ADR |
A |
B |
DCX B |
DCX D |
DCX H |
DCX SP |
MOV C, E |
MOV E, E |
MOV L, E |
MOV A, E |
ADC E |
SBB E |
XRA E |
CMP E |
- |
IN N |
XCHG |
EI |
B |
C |
INR C |
INR E |
INR L |
INR A |
MOV C, H |
MOV E, H |
MOV L, H |
MOV A, H |
ADC H |
SBB H |
XRA H |
CMP H |
CZ ADR |
CC ADR |
CPE ADR |
CM ADR |
C |
D |
DCR C |
DCR E |
DCR L |
DCR A |
MOV C, L |
MOV E, L |
MOV L, L |
MOV A, L |
ADC L |
SBB L |
XRA L |
CMP L |
CALL ADR |
- |
- |
- |
D |
E |
MVI C, D8 |
MVI E, D8 |
MVI L, D8 |
MVI A, D8 |
MOV C, M |
MOV E, M |
MOV L, M |
MOV A, M |
ADC M |
SBB M |
XRA M |
CMP M |
ACI D8 |
SBI D8 |
XRI D8 |
CPI D8 |
E |
F |
RRC |
RAR |
CMA |
CMC |
MOV C, A |
MOV E, A |
MOV L, A |
MOV A, A |
ADC A |
SBB A |
XRA A |
CMP A |
RST 1 |
RST 3 |
RST 5 |
RST 7 |
F |
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
|