- •Система команд микропроцессоров к1810вмв6/к1810вм88
- •1. Команды пересылки данных 4. Команды передачи управления
- •5. Команды обработки строк 6. Команды управления микропроцессором
- •5.1. Строковые примитивы 6.1. Управление флагами
- •У с л о в н ы е о б о з н а ч е н и я
- •Выбор команд условных переходов в сочетании с командами сравнения
- •Дополнительные команды мп 80286
- •Содержание
Выбор команд условных переходов в сочетании с командами сравнения
Условие перехода |
Следующая за CMP команда |
Следующая за CMPS команда | ||
|
числа без знака |
числа со знаком |
числа без знака |
числа со знаком |
приемник > источник |
JA / JNBE |
JG / JNLE |
JB / JNAE |
JL |
приемник = источник |
JE |
JE |
JE |
JE |
приемник < > источник |
JNE |
JNE |
JNE |
JNE |
приемник < источник |
JB / JNAE |
JL / JNGE |
JA / JNBE |
JG / JNLE |
приемник < = источник |
JBE / JNA |
JLE / JNG |
JAE / JNB |
JGE |
приемник > = источник |
JAE /JNB |
JGE / JNL |
JBE / JNA |
JLE |
Дополнительные команды мп 80286
PUSH data (STACK)=data PUSHA (STACK)=(AX,CX,DX,BX,SP,BP,SI,DI)
INS ms_d ES:[(DI)]=((DX)) POPA (DI,SI,BP,SP,BX,DX,CX,AX)=(STACK)
OUTS ms_s ((DX))=DS:[(SI)] IMUL r16,rm16,data (r16)=(rm16)data
SHR rm,cnt cnt=1,CL,data BOUND r16,m16 Если ((m16)<=(r16)<=(m16+2))=False, то INT 5
. . . . . . ENTER data16,data8 Создать кадр стека для параметров процедуры ЯВУ
RCR rm,cnt LEAVE Освободить кадр стека процедуры ЯВУ
Содержание
Указатель сокращений . . . . . . . . . . . . . . . . . . . . . . |
3 |
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
4 |
1. Организация микропроцессорных систем . . . . . . . . . . . . . . |
7 |
1.1. Типовая структура микропроцессорных систем . . . . . . . . . . |
7 |
1.2. Организация микроЭВМ . . . . . . . . . . . . . . . . . . . . |
8 |
1.2.1. Фундаментальные принципы организации вычислительных машин |
8 |
1.2.2. Программное управление вычислительным процессом . . . . . |
8 |
1.2.3. Структура команд вычислительных машин . . . . . . . . . . |
9 |
1.2.4. Структура и принцип действия микроЭВМ . . . . . . . . . |
12 |
1.2.5. Базовая система команд микроЭВМ . . . . . . . . . . . . . |
13 |
Функциональные группы команд (14). Способы адресации операндов (15). |
|
1.3. Организация устройств микроЭВМ . . . . . . . . . . . . . . . |
17 |
1.3.1. Организация процессора . . . . . . . . . . . . . . . . . . |
17 |
Операционный блок (17). Управляющий блок (19). |
|
1.3.2. Организация памяти . . . . . . . . . . . . . . . . . . . . |
20 |
1.3.3. Организация интерфейса . . . . . . . . . . . . . . . . . . |
23 |
Методы обмена данными (26). Синхронный обмен (27). Асинхронный обмен (27). Обмен по прерыванию (30). Обмен в режиме прямого доступа в память (34). |
|
2. Элементная база микроЭВМ . . . . . . . . . . . . . . . . . . . |
36 |
2.1. Состав элементов для построения микроЭВМ . . . . . . . . . . |
36 |
2.2. Однокристальные микропроцессоры К1810ВМ86/К1810ВМ88 . . |
37 |
2.2.1. Аппаратный интерфейс . . . . . . . . . . . . . . . . . . |
37 |
2.2.2. Функциональный смысл внешних сигналов . . . . . . . . . |
38 |
2.2.3. Структура и принцип действия . . . . . . . . . . . . . . . |
42 |
2.2.4. Временные диаграммы функционирования . . . . . . . . . . |
45 |
2.2.5. Логическая организация памяти . . . . . . . . . . . . . . |
47 |
2.2.6. Вычисление физического адреса памяти . . . . . . . . . . . |
48 |
2.2.7. Сегментная структура памяти . . . . . . . . . . . . . . . |
50 |
2.3. Генератор тактовых импульсов К1810ГФ84 . . . . . . . . . . . |
51 |
2.4. Шинные буферы К1810ВА86 . . . . . . . . . . . . . . . . . |
54 |
2.5. Элементы памяти . . . . . . . . . . . . . . . . . . . . . . . |
55 |
2.5.1. Элементы постоянной памяти . . . . . . . . . . . . . . . |
55 |
2.5.2. Элементы оперативной памяти . . . . . . . . . . . . . . . |
58 |
2.6. Порты ввода/вывода . . . . . . . . . . . . . . . . . . . . . |
60 |
2.6.1. Порт ввода/вывода К1810ИР82 . . . . . . . . . . . . . . |
60 |
2.6.2. Порт ввода/вывода К589ИР12 . . . . . . . . . . . . . . . |
61 |
2.6.3. Программируемый параллельный интерфейс КР580ВВ55А . . . |
63 |
3. Программирование на языке ассемблера . . . . . . . . . . . . . . |
70 |
3.1. Архитектура микропроцессоров K1810ВМ86/K1810ВМ88 . . . . |
70 |
3.2. Основные элементы ассемблера. Формат программной строки . . . |
73 |
3.3. Директивы управления сегментами . . . . . . . . . . . . . . . |
74 |
3.4. Типовая структура текста программы . . . . . . . . . . . . . . |
77 |
3.5. Символические имена . . . . . . . . . . . . . . . . . . . . . |
79 |
3.6. Константы. Их типы и директивы описания . . . . . . . . . . . |
79 |
3.6.1. Числовые константы . . . . . . . . . . . . . . . . . . . |
80 |
3.6.2. Символьные константы . . . . . . . . . . . . . . . . . . |
80 |
3.6.3. Поименованные константы . . . . . . . . . . . . . . . . . |
81 |
3.6.4. Константы выражения . . . . . . . . . . . . . . . . . . |
81 |
3.7. Переменные. Их типы и директивы описания . . . . . . . . . . |
82 |
3.7.1. Стандартные типы данных и их размещение в памяти . . . . . |
82 |
3.7.2. Директивы описания переменных и распределения памяти . . . |
83 |
3.8. Атрибуты переменных и меток. Директивы, возвращающие атрибутные значения . . . . . . . . . . . . . . . . . . . . . |
87 |
3.8.1. Атрибуты переменных . . . . . . . . . . . . . . . . . . . |
87 |
3.8.2. Атрибуты меток . . . . . . . . . . . . . . . . . . . . . . |
89 |
3.9. Замена атрибутов переменных и меток . . . . . . . . . . . . . |
89 |
3.9.1. Замена смещения . . . . . . . . . . . . . . . . . . . . . |
90 |
3.9.2. Замена сегмента . . . . . . . . . . . . . . . . . . . . . . |
90 |
3.9.3. Замена типа . . . . . . . . . . . . . . . . . . . . . . . |
92 |
3.10. Способы адресации операндов . . . . . . . . . . . . . . . . . |
94 |
3.10.1. Адресация данных . . . . . . . . . . . . . . . . . . . . |
94 |
Регистровая адресация (94). Непосредственная адресация (95). Прямая адресация (95). Косвенная регистровая адресация (95). Базовая адресация (96). Индексная адресация (97). Базовоиндексная адресация (97). Относительная базовоиндексная адресация (98). |
|
3.10.2. Адресация переходов . . . . . . . . . . . . . . . . . . . |
98 |
Внутрисегментный прямой переход (99). Внутрисегментный косвенный переход (99). Межсегментный прямой переход (100). Межсегментный косвенный переход (100). |
|
3.11. Система команд . . . . . . . . . . . . . . . . . . . . . . . |
100 |
3.11.1. Команды пересылки данных . . . . . . . . . . . . . . . |
101 |
Команды пересылки общего назначения (101). Команды загрузки адресных значений (103). Команды обращения к стеку (105). Команды пересылки флагов (106). Команды ввода/вывода (107). |
|
3.11.2. Арифметические команды . . . . . . . . . . . . . . . . . |
108 |
Типы арифметических данных (108). Команды инкрементирования и декрементирования (109). Команды сложения и вычитания (110). Команды расширения знака (114). Команды умножения и деления (115). Команды десятичной коррекции (117). Сложение в BCD формате (118). Вычитание в BCDформате (118). Сложение в ASCIIформате (119). Вычитание в ASCIIформате (121). Умножение в ASCIIформате (121). Деление в ASCIIформате (123). |
|
|
|
3.11.3. Логические команды . . . . . . . . . . . . . . . . . . . |
124 |
Команды логических операций (124). Команды сравнения (127). Команды сдвигов (128). Команды логических сдвигов (128). Команды арифметических сдвигов (130). Команды циклических сдвигов (131). |
|
3.11.4. Команды передачи управления . . . . . . . . . . . . . . |
132 |
Команды безусловных переходов (132). Команды условных переходов (134). Команды перехода по состоянию арифметических флагов (134). Команды перехода по соотношению между числами (135). Команды перехода по состоянию регистра CX (137). Команды управления циклами (137). Команды для организации подпрограмм (139). Команды прерываний (141). |
|
3.11.5. Команды обработки строк . . . . . . . . . . . . . . . . . |
143 |
Строковые примитивы (144). Префиксы повторения (148). |
|
3.11.6. Команды управления микропроцессором . . . . . . . . . . |
151 |
Команды управления флагами (151). Команды синхронизации (152). |
|
3.11.7. Принципы кодирования команд . . . . . . . . . . . . . . |
153 |
3.11.8. Время выполнения команд . . . . . . . . . . . . . . . . |
156 |
3.12. Организация подпрограмм . . . . . . . . . . . . . . . . . . |
158 |
3.12.1. Директивы описания подпрограмм . . . . . . . . . . . . . |
158 |
3.12.2. Передача параметров в подпрограммы . . . . . . . . . . . |
159 |
Передача параметров через регистры (160). Передача параметров через общие ячейки памяти (161). Передача параметров через зоны параметров (163). Передача параметров через стек (164). |
|
3.13. Организация системы прерываний . . . . . . . . . . . . . . . |
168 |
3.13.1. Внешние прерывания . . . . . . . . . . . . . . . . . . . |
168 |
3.13.2. Внутренние прерывания . . . . . . . . . . . . . . . . . |
169 |
3.13.3. Обслуживание прерываний . . . . . . . . . . . . . . . . |
169 |
3.14. Нестандартные типы данных . . . . . . . . . . . . . . . . . |
172 |
3.14.1. Структуры . . . . . . . . . . . . . . . . . . . . . . . |
172 |
3.14.2. Записи . . . . . . . . . . . . . . . . . . . . . . . . . |
177 |
3.15. Макрокоманды . . . . . . . . . . . . . . . . . . . . . . . |
181 |
3.15.1. Макроопределения и макровызовы . . . . . . . . . . . . . |
182 |
3.15.2. Сравнение макрокоманд и подпрограмм . . . . . . . . . . |
185 |
3.15.3. Макрокоманды повторения . . . . . . . . . . . . . . . . |
186 |
3.15.4. Библиотеки макроопределений . . . . . . . . . . . . . . |
187 |
4. Технология подготовки программ . . . . . . . . . . . . . . . . . |
189 |
4.1. Создание исходного файла программы . . . . . . . . . . . . . |
189 |
4.2. Трансляция программы . . . . . . . . . . . . . . . . . . . . |
189 |
4.3. Компоновка программы . . . . . . . . . . . . . . . . . . . . |
192 |
4.4. Отладка программы . . . . . . . . . . . . . . . . . . . . . . |
193 |
5. Модульное программирование . . . . . . . . . . . . . . . . . . . |
194 |
5.1. Методы и проблемы модульного программирования . . . . . . . |
194 |
5.1.1. Реализация модульности за счет библиотек макроопределений |
194 |
5.1.2. Реализация модульности за счет связывания объектных модулей |
195 |
Объединение логических сегментов(196). Описание межмодульных обращений (203). |
|
5.2. Библиотеки объектных модулей . . . . . . . . . . . . . . . . |
205 |
5.2.1. Создание библиотек объектных модулей и операции над ними |
206 |
Команды библиотекаря (206). |
|
5.2.2. Использование библиотек объектных модулей . . . . . . . . |
208 |
6. Проектирования микропроцессорных систем . . . . . . . . . . . . |
211 |
6.1. Представление системы как объекта проектирования . . . . . . . |
211 |
6.2. Основные этапы проектирования . . . . . . . . . . . . . . . . |
212 |
6.3. Разработка архитектуры системы . . . . . . . . . . . . . . . . |
214 |
6.4. Проектирование аппаратных средств . . . . . . . . . . . . . . |
215 |
6.4.1. Схемотехническое проектирование процессора . . . . . . . . |
215 |
6.4.2. Схемотехническое проектирование памяти . . . . . . . . . . |
218 |
Банкирование памяти (219). Организация банков памяти (220). Проектирование запоминающих устройств (224). |
|
6.4.3. Схемотехническое проектирование интерфейса . . . . . . . . |
226 |
Организация ввода/вывода данных (231). |
|
6.4.4. Тестирование и настройка аппаратных средств . . . . . . . . |
235 |
Тестирование статическими сигналами (236). Свободный прогон микропроцессора (236). |
|
6.5. Проектирование программных средств . . . . . . . . . . . . . . |
237 |
6.5.1. Этапы жизненного цикла программы . . . . . . . . . . . . |
237 |
6.5.2. Точная постановка задачи и формулировка требований к программе |
239 |
Постановка задачи ввода данных в ОЗУ (239). |
|
6.5.3. Проектирование программы . . . . . . . . . . . . . . . . . |
243 |
Декомпозиция общей задачи (243). Декомпозиции задачи ввода данных в ОЗУ (248). Структуры данных (254). Разработка структуры данных программы для ввода данных в ОЗУ (259). Алгоритмизация программы (262). Подходы к алгоритмизации (263). Иерархическая организация алгоритма (267). Алгоритмизация программы для ввода данных в ОЗУ (269). |
|
6.5.4. Кодирование программы . . . . . . . . . . . . . . . . . . |
291 |
Реализация логических конструкций структурного программирования (291). Кодирование программы для ввода данных в ОЗУ (299). |
|
6.5.5. Тестирование и отладка программы . . . . . . . . . . . . . |
313 |
6.5.6. Занесение программы на рабочий носитель . . . . . . . . . . |
314 |
6.5.7. Оформление документации на программу . . . . . . . . . . |
316 |
6.6. Комплексная отладка микропроцессорной системы . . . . . . . . |
316 |
Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . |
317 |
Список рекомендуемых источников . . . . . . . . . . . . . . . . . |
318 |
Приложение. Система команд микропроцессоров K1810ВМ86/K1810ВМ88 |
319 |