Скачиваний:
74
Добавлен:
08.03.2015
Размер:
116.22 Кб
Скачать

Выбор команд условных переходов в сочетании с командами сравнения

Условие перехода

Следующая за 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