
- •Эвм и вычислительные системы».
- •Часть I.
- •Лекция №1 общие сведения о микропроцессорах и микропроцессорных системах.
- •Предисловие
- •1.1 . Основные определения и классификация микропроцессорных систем.
- •1.2. Однокристальные мп.
- •1.2.1 Краткий исторический обзор развития.
- •Лекция №2 обзор микропроцессоров фирм клонмейкеров. Современный уровень развития однокристальных микропроцессоров.
- •2.1. Микропроцессоры-клоны.
- •2.2. Современные универсальные однокристальные микропроцессоры.
- •Процессоры Pentium II.
- •2.2.1. Процессоры фирмы amd
- •2.2.2.ПроцессорыфирмыCyrix.
- •2.2.3. Сравнительный анализ мп различных семейств.
- •2.2.4. Перспективы развития.
- •2.3. Программируемые микроконтроллеры.
- •Лекция №3 обзор микропроцессоров с микропрограммным управлением и микропроцессоров с сокращенным набором команд.
- •3.1. Мп с микропрограммным управлением.
- •3.2. Мп с сокращенным набором команд.
- •3.2.1. Risc-процессоры: предпосылки создания.
- •3.2.2. Принципы risc
- •3.2.3. Особенности risc-процессоров.
- •3.2.4. Представители группы risc-процессоров.
- •3.2.5. Цифровые процессоры обработки сигналов.
- •Лекция №4 представление информации в мпс.
- •4.1. Способы кодирования информации в мпс.
- •4.2 Двоичный формат.
- •4.3. Двоично-десятичная система кодирования.
- •4.4. Шестнадцатиричная система счисления.
- •4.4. Формат с плавающей точкой.
- •4.5. Кодирование команд.
- •Лекция №5 архитектура мп и мпс.
- •5.1. Понятие организации и архитектуры мп и мпс.
- •5.2 Обобщенная функциональная схема мп.
- •5.2.1 Устройство управления на основе аппаратной реализации.
- •5.2.2. Программируемая логическая матрица.
- •Лекция №6 архитектура мп и мпс.(продолжение)
- •6.1. Функциональная схема однокристального мп.
- •6.2 Структура адресного пространства мпс.
- •6.3 Взгляд программиста на адресное пространство.
- •6.4 Понятие стека.
- •Лекция №7 способы адресации
- •7.1 Основные определения.
- •7.2 Однокомпонентные способы адресации.
- •7.2.1 Прямой способ адресации.
- •7.2.3 Способы адресации с автомодификацией.
- •7.3 Многокомпонентные способы адресации.
- •Лекция №8 основы проограммирования на языке ассемблера для мп i8086.
- •8.1. Формат команд на языке встроенного ассемблера.
- •8.2. Архитектура мп i8086.
- •8.2.1 Сегментация памяти мп i8086.
- •8.2.2 Структура мп i8086.
- •8.2.3 Устройство шинного интерфейса.
- •8.2.4 Операционное устройство(оу).
- •8.3 Основные команды языка Ассемблер для мп i8086.
- •8.3.1 Команды пересылки данных.
- •Лекция №9 основы проограммирования на языке ассемблера для мп i8086. (продолжение).
- •9.1. Арифметические команды.
- •9.2. Логические команды.
- •9.3. Команды передачи управления.
- •9.4. Команды управления мп.
- •Лекция №10 запоминающие устройства.
- •10.1 Основные характеристики полупроводниковых запоминающих устройств.
- •10.2 Способы организации бис зу.
- •10.3 Классификация полупроводниковых зу.
- •10.3.1. Статические озу (Static Random Access Memory).
- •10.3.2. Озу динамического типа (Dynamic Random Access Memory dram).
- •10.3.4. Кмоп - озу.
- •Лекция №11 запоминающие устройства. (продолжение)
- •11.1. Постоянные зу. (Read Only Memory - rom).
- •11.2. Flash-память.
- •11.3. Корпуса модулей зу.
- •11.4. Наращивание объема и разрядности памяти, построенной на полупроводниковых зу.
- •Лекция № 12 организация магистралей мпс.
- •12.1 Типы магистралей мпс.
- •12.2 Циклы обращения к магистрали.
- •12.3 Примеры архитектур системных магистралей современных мпс.
- •Лекция №13 методы расширения адресного пространства мпс.
- •13.1 Предварительные замечания.
- •13.2 Метод окна.
- •13.3 Метод базовых регистров.
- •13.4 Метод банков.
- •13.5 Метод виртуальной памяти.
- •Лекция №14 система прерываний.
- •14.1 Понятие системы прерываний, классификация систем прерываний.
- •14.2. Организация радиальной системы прерываний.
- •14.3. Расширение радиальной системы прерываний методом поллинга.
- •14.4. Организация векторной системы прерываний.
- •Лекция №15 организация связи мпс с переферийными устройствами.
- •15.1. Классификация способов обмена информацией в мпс.
- •Прямой ввод/ вывод
- •15.3 Условный ввод-вывод.
- •15.4. Режим прямого доступа к памяти.
- •Лекция №16 интерфейсы мпс.
- •16.1. Принципы организации и классификация интерфейсов.
- •16.2. Элементная база интерфейсов.
- •16.3. Средства параллельного ввода/вывода.
- •Лекция №17 расширитель интерфейса для ibm-совместимых пк. Программируемый интервальный таймер.
- •17.1. Расширитель интерфейса рс на основе ппа кр580вв55.
- •17.2 Программируемый интервальный таймер.
- •17.3. Модуль преобразования цифрового кода в шим-сигнал на базе пит.
- •Лекция №18 интерфейсы последовательной связи.
- •18.1. Общая характеристика последовательной связи.
- •18.2. Асинхронные последовательные интерфейсы.
- •18.3. Бис для организации последовательного интерфейса.
- •18.4. Модем.
- •18.5. Стандарты физической связи. Стандарт rs -232- c.
Лекция №9 основы проограммирования на языке ассемблера для мп i8086. (продолжение).
План лекции
1. Арифметические команды.
2. Логические команды.
3. Команды передачи управления.
4. Команды управления МП.
9.1. Арифметические команды.
МП выполняет четыре основных арифметических действия: сложение, вычитание, умножение и деление над 8- и 16-разрядными данными со знаком и без знака. Все арифметические команды влияют на флаги. Описание арифметических команд приведено в таблице 9.1.
Таблица 9.1.
Как видно из форматов команд DIV и IDIV, для выполнения операций деления необходимо преобразовать делимое:
- в случае делимого-байта (AL), преобразовать его в слово (AH:AL);
- в случае делимого-слова (АХ), преобразовать его в двойное слово (DX:AX).
Указанные операции выполняются с помощью команд:
СBW- преобразовать байт в слово;
CWD- преобразовать слово в двойное слово.
Форматы команд указаны также в таблице 9.1.
Примеры, иллюстрирующие использование арифметических команд, приведены на рис.9.1.
9.2. Логические команды.
Команды МП, реализующие логические операции, представлены в таблице 9.2.
Логические команды наиболее часто используются для селективной установки, инвертирования, сброса и проверки бит в операнде получателе в соответствии с двоичным набором операнда-источника. Примеры использования логических команд приведены на рис.9.2.
директивы определения данных, команды ввода и др. (X, Y, Z и V определены как переменные целого типа). MOV AX,X ;умножить (Х) на Y IMUL Y ;и запомнить произведение в ВХ:СХ MOV CX,AX ; MOV BX,DX ; MOV AX,Z ;прибавить к произведению в ВХ:СХ CWD ;расширенное со знаком (Z) ADD CX,AX ADC BX,DX SUB CX,540 ;вычесть 540 из BX:CX SBB BX,0 MOV AX,V ;вычесть (BX:CX) из (V) расширен- CWD ;ным со знаком и разделить на (Х) SUB AX,CX ;частное образовать в АХ SUB DX,BX ;а остаток в DX IDIV X команды вывода и др. |
Рис.9.1.
Таблица 9.2.
Рис.9.2.
9.3. Команды передачи управления.
В группе команд передачи управления различают четыре типа команд: безусловные переходы, условные переходы, циклы и прерывания.
Команды безусловного перехода включают три мнемокода: JMP- безусловный переход; CALL- вызов подпрограммы; RET- возврат из подпрограммы. Команда JMP позволяет осуществлять безусловный переход в любую точку внутри ассемблерной вставки.
Пример использования команды:
JMP @@1 ;передача управления команде с меткой @@1
Команды условных переходов осуществляют передачу управления в зависимости от результатов предыдущих операций.
Таблица 9.3
Различают три разновидности условных переходов, которые используются для установления соотношений чисел со знаком, чисел без знака и произвольных чисел. В таблице 9.3 приведены мнемоника и формат команд условных переходов.
Примеры использования команд условных переходов приведены на рис.9.3.
Рис.9.3.
На рис. 9.3 показан фрагмент программы, содержащей несколько команд условных переходов. В нем осуществляется переход к оператору с меткой МЕТКА1, если Х < 50. В противном случае определяется разность /X-Y/, значение которой загружается в ячейку с именем REZULT.
Организация циклов.
Циклы в Ассемблере могут быть организованы как при помощи команд условных переходов, так и специальными командами.
Рассмотрим указанные варианты. Пример организации цикла при помощи команд условных переходов с постоянной проверкой показан на рис.9.4.
Рис.9.4.
Рассмотрим далее пример организации цикла с использование специальной команды: LOOP <метка> (Рис.9.5).
Рис.9.5.
Команда LOOP управляет выполнением группы команд определенное число раз. До начала цикла в регистр СХ должно быть загружено число выполняемых циклов.
Команда LOOP находится в конце цикла, где она уменьшает значение в регистре СХ на единицу. Если число в регистре СХ не равно нулю, то команда передает управление по адресу, указанному в операнде (прибавляя к регистру IP значение операнда); в противном случае управление передается на следующую после LOOP команду (выход из цикла).
Команды прерывания -INT.
Формат команды:
INT Int_num.
Команда прерывает обработку программы, передает управление в DOS или BIOS для определенного действия и затем возвращает управление в прерванную программу для продолжения обработки.
Наиболее часто прерывания используются для выполнения операций ввода с клавиатуры и вывода на экран терминала. Для выхода из программы на обработку прерывания и для последующего возврата команда INT выполняет следующие действия:
- сохраняет в стеке регистры МП и РС;
- загружает в РС адрес первой команды процедуры, обслуживающей прерывания;
- восстанавливает из стека значения регистров и возвращает управление в прерванную программу на команду, следующую после INT.
Мы будем рассматривать INT 16Н и INT 21H - для работы с терминалом и клавиатурой.
Клавиатура ПК содержит микропроцессор, который воспринимает каждое нажатие на клавишу и формирует соответствующий ей скан-код.
Скан-код - это однобайтовое число, младшие 7 бит которого представляют собой ASCII-код клавиши.
Код ASCII - это байтовые числа, соответствующие набору обычных символов пишушей машинки, а также ряд специальных букв и символов псевдографики.
Все необходимые клавиатурные операции можно выполнить с помощью команды вызова программного прерывания INT 21H. Конкретизация действия вызываемой функции осуществляется путем загрузки в регистры центрального микропроцессора соответствующих кодов.
Рассмотрим примеры использования указанного прерывания для работы с клавиатурой.
Функция 0С прерывания 21H выполняет функцию ввода с клавиатуры, причем перед этим чистит буфер клавиатуры. Для вызова функции необходимо поместить в АН код 0СН, а в AL - 1. Фрагмент программы приведен на рис.9.6.
Рис. 9.6.
Листинг программы, использующей функцию ввода с ожиданием приведен на рис.9.7. Указанная программа выводит на экран терминала ASCII-код нажатой клавиши.
Пример.
Рис. 9.7.
Программы, работающие в реальном времени (управляющие, игровые и т.д.), часто используют клавиши для управления процессом вычислений. При этом они должны принимать символ из буфера клавиатуры без ожидания нажатия клавиши. Например, алгоритм работы управляющей программы может быть представлен в виде (Рис. 9.8.а):
Рис. 9.8.а
Рис. 9.8.б
Введенный символ с клавиатуры можно получить при помощи функции 6 прерывания 21Н. Эта функция не дает эха на экран. Перед вызовом прерывания в DL должно быть помещено 0FFH. Если символ принят, то он помещается в AL. Фрагмент программы приведен на рис. 9.8.б