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.б
- Эвм и вычислительные системы».
- Часть 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.