- •Введение
- •1 Основы микропроцессорной техники
- •1.1 Классификация команд и архитектура ЭВМ
- •1.2 Секционный микропроцессор.
- •1.3 Однокристальный микропроцессор.
- •1.4 Микропроцессорный модуль.
- •3.1 Тип кода операции с dst и rsc
- •3.2 Тип кода операции с dst. Группа коман MOV
- •4 Организация стековой памяти
- •5 Команды сдвигов и приращений.
- •5.1 Команды приращений
- •5.2 Команды сдвига
- •6 Арифметико-логические команды
- •6.1 Команды сложения
- •6.2 Команда сложения с учетом переноса
- •6.3 Операция вычитания
- •6.4 Команда вычитания с учетом заема
- •6.5 Команда логической функции ИЛИ
- •6.6 Команда логической функции И
- •6.7 Команда «Исключающая ИЛИ»
- •Внутриразрядная сумма = 0
- •6.8 Команда сравнения — компарации
- •7 Команды ветвления и переходов
- •7.1 Команды ветвления
- •7.2 Команды перехода
- •8.1 Внутрисегментные переходы
- •8.2 Межсегментные переходы
- •10 Цепочные команды
- •11 Другие одиночные команды
- •13.1 Процедура прерываний и команды прерываний
- •Адрес
- •13.2 Режимы работы ПКП
- •13.3 Программирование ПКП
- •14 Параллельный интерфейс
- •15 Последовательный интерфейс
- •15.1 Антология последовательного интерфейса
- •15.3 Описание регистров 8250 и программирование
- •Регистр управления линией
- •Регистр управления модемом
- •15.4 Порядок инициализации 8250
- •16 Программируемый таймер
- •16.7 Временные диаграммы таймера
- •16.8 Программирование таймера
- •Чтение счетчика канала 2
- •16.9 Чтение содержимого счетчиков
- •16.10 Таймер на системной плате IBM PC
- •17 Клавиатурный интерфейс
- •18. Заключение
- •Приложение А
- •Действие
- •Сегментный регистр
- •Действие команды
- •Действие команды
- •Действие команды
- •SAHF — сохранение <AH> в F
- •Действие команды
- •Действие команды
- •Действие команды
- •Действие команды
- •Действие команды
- •Действие команды
- •Действие команды
- •Действие команды
- •Действие команды
- •Действие команды
- •Команда – действие команды
- •Команда – действие команды
- •Команда – действие команды
- •Команда – действие команды
- •Команда – действие команды
- •Команда – действие команды
- •Команда – действие команды
RETF – Далекий |
CB |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
RETF Disp - Далекий с коррекцией SP |
CA |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
Команды условного перехода (SHORT ADDRESS)
|
Команда – действие команды |
|
|
Hex |
7 |
6 |
5 |
4 |
3 |
|
2 |
1 |
0 |
|
JE/JZ —переход при [=] |
|
|
74 |
0 |
1 |
1 |
1 |
0 |
|
1 |
0 |
0 |
|
JL/JNGE —переход при [<] |
|
|
7C |
0 |
1 |
1 |
1 |
1 |
|
1 |
0 |
0 |
|
JLE/JNG —переход при [≤] |
|
|
7E |
0 |
1 |
1 |
1 |
1 |
|
1 |
1 |
0 |
|
JB/JNAE —переход при [<] без знака |
|
|
72 |
0 |
1 |
1 |
1 |
0 |
|
0 |
1 |
0 |
|
JBE/JNA —переход при [≤] без знака |
|
|
76 |
0 |
1 |
1 |
1 |
0 |
|
1 |
1 |
0 |
|
JP/JPE —переход при чётном числе «1» |
|
|
7A |
0 |
1 |
1 |
1 |
1 |
|
0 |
1 |
0 |
|
JO —переход при арифм. переполнении |
|
|
70 |
0 |
1 |
1 |
1 |
0 |
|
0 |
0 |
0 |
|
JS —переход при знаке [-] |
|
|
78 |
0 |
1 |
1 |
1 |
1 |
|
0 |
0 |
0 |
|
JNE/JNZ —переход при [≠] |
|
|
75 |
0 |
1 |
1 |
1 |
0 |
|
1 |
0 |
1 |
|
JNL/JGE —переход при [≥] |
|
|
7D |
0 |
1 |
1 |
1 |
1 |
|
1 |
0 |
0 |
|
JNLE/JG —переход при [>] |
|
|
7F |
0 |
1 |
1 |
1 |
1 |
|
1 |
1 |
0 |
|
JNB/JAE —переход при [≥] без знака |
|
|
73 |
0 |
1 |
1 |
1 |
0 |
|
0 |
1 |
0 |
|
JNBE/JA —переход при [>] без знака |
|
|
77 |
0 |
1 |
1 |
1 |
0 |
|
1 |
1 |
0 |
|
JNP/JPO —переход при нечёт. числе |
|
|
7B |
0 |
1 |
1 |
1 |
1 |
|
0 |
1 |
0 |
|
«1» |
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
JNO —переход при ариф. непереполнен. |
|
|
71 |
0 |
1 |
1 |
1 |
0 |
|
0 |
0 |
0 |
|
JNS —переход при знаке [+] |
|
|
79 |
0 |
1 |
1 |
1 |
1 |
|
0 |
0 |
0 |
|
Команды для организации циклов |
(SHORT |
|
ADDRESS) |
|
|
|
||||||
|
Команда – действие команды |
|
Hex |
7 |
6 |
5 |
4 |
3 |
|
2 |
1 |
0 |
|
|
LOOP —декремент СХ и переход, |
|
E2 |
1 |
1 |
1 |
0 |
0 |
|
0 |
1 |
0 |
|
|
если СХ≠0 (конец цикла, если СХ=0) |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
LOOPE/LOOPZ – декремент СХ и |
|
E1 |
1 |
1 |
1 |
0 |
0 |
|
0 |
0 |
1 |
|
|
переход, если СХ≠0 и Z=1 (конец |
|
|
||||||||||
|
цикла, если Z=0 или СХ=0) |
|
|
|
|
|
|
|
|
|
|
|
|
|
LOOPNE/LOOPNZ – декремент СХ и |
|
E0 |
1 |
1 |
1 |
0 |
0 |
|
0 |
0 |
0 |
|
|
переход, если СХ≠0 и Z=0 (конец |
|
|
||||||||||
|
цикла, если Z=1 или СХ=0) |
|
|
|
|
|
|
|
|
|
|
|
|
|
JCXZ —переход, если СХ=0 |
|
E3 |
1 |
1 |
1 |
0 |
0 |
|
0 |
1 |
1 |
|
Команды для обработки прерываний |
|
|
|
|
|
|
|
|
|
|
|||
|
Команда – действие команды |
|
Hex |
7 |
6 |
5 |
4 |
3 |
|
2 |
1 |
0 |
|
|
INT 3 - Третьего типа |
|
|
CC |
1 |
1 |
0 |
0 |
1 |
|
1 |
0 |
0 |
|
INT n - Любого n-типа (вектор n -1 |
|
|
CD |
1 |
1 |
0 |
0 |
1 |
|
1 |
0 |
1 |
|
байт) |
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
INT 0 — прерывание по перполнению |
|
|
CE |
1 |
1 |
0 |
0 |
1 |
|
1 |
1 |
0 |
|
IRET —возврат из прерывания |
|
|
CF |
1 |
1 |
0 |
0 |
1 |
|
1 |
1 |
1 |
Команды управления флагами и состоянием микропроцессора
Команда – действие команды
Hex |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CLC — cброс флага C (C=0) |
F8 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
|
CMC— инверсия флага C |
F5 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
|
119
STC — установка флага C (C=1) |
F9 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
|
|
|
|
|
CLD — сброс флага D (D=0) |
FC |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
|
|
|
|
|
STD — установка флага D (D=1) |
FD |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
|
|
|
|
|
CLI — запрет аппаратного |
FA |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
|
|
|
|
|
прерывания (I=0) |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
STI — разрешение аппаратного |
FB |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
|
|
|
|
|
прерывания (I=1) |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HLT— останов (отключение |
F4 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
|
|
|
|
|
микопроцессора от системной |
|
|
|
|
|
|||||||||
шины) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WAIT — ожидание |
9B |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
|
|
|
|
|
ESC OPCODE— переключение |
D8 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
mo |
0 |
0 |
0 |
R/m |
направления загрузки кода |
||||||||||||||
операции на сопроцессор |
|
|
|
|
|
|
|
|
|
d |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LOCK — префикс захвата |
F0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
|
|
|
|
|
NOP — пустая команда |
90 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
|
|
|
|
|
Команды префикса однократного замещения сегмента
Команда – действие |
Hex |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
команды |
||||||||||
|
|
|
|
|
|
|
|
|
||
ES: —замещение на ES (кроме SS и CS) |
26 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
|
CS:—замещение на CS (кроме SS) |
2E |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
|
SS: —замещение на SS (кроме CS) |
36 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
|
DS:—замещение на DS (кроме SS и |
3E |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
|
CS) |
|
|
|
|
|
|
|
|
|
120