Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АССЕМБЛЕР.doc
Скачиваний:
6
Добавлен:
21.09.2019
Размер:
388.1 Кб
Скачать

16.Вызов процедур на ассемблере.

Каждый раз как в программе потребуется выполняемая процедурой функция, она передает управление в эту процедуру командой перехода на нее. Переход на процедуру называется вызовом процедуры или командой вызова. Вызов процедуры отличается от команды перехода. Команда вызова сохраняет адрес следующей за ней команды. Этот адрес, называемый адресом возврата, указывает дорогу обратно к исходной последовательности команд. Вызов процедуры: При выполнении программы выозов процедуры выполняет не само сложение с двойной точностью, а передачу управления соответствующей процедуре.Процессор выполняет команды процедуры, реализующей сложение. Последняя команда процедуры является специальной командой для процедур и называется возвратом. Команда возврата берет адрес, который был сохранен командой вызова и помещает его обратно в указатель команд. Это заставляет программу вернуться к команде, следующей за вызовом процедуры. Вызов процедуры как бы временно отводит течение программы в русло процедуры. После выполнения процедуры выполнение возвращается к основной программе. Команды, которые обеспечивают выполнение процедуры - CALL и RETURN. CALL - это переход на процедуру. CALL сохраняет текущее значение указателя команд в специальном месте памяти. Это сохраненное значение указателя команд является адресом возврата. Команда RETURN читает сохраненное значение указателя команд, помещает его в указатель команд процессора и возвращает управление в точку, следующую за командой CALL.

17.Прерывания работы проц. Вызов программных прерываний.

Механизм прерываний - существенная часть любой вычислительной системы, в том числе и для IBM PC. Структура прерываний предоставляет эффективное средство для связи устройств вводоа-вывода с процессором. Управление прерываниями - прерогатива программирования на языке ассемблера. В языках высокого уровня отсутствуют средства для работы с прерываниями на машинном уровне. Прерывания обычно вызываются внешними устройствами. Прерывание сигнализирует процесору о необходимости прервать текущие действия и ответить внешнему устройству. В IBM PC клавиатура посылает сигнал прерывания всякий раз при нажатии любой клавиши. Прерывание клавиатуры заставляет процессор прекратить текущую деятельность и считать набранный на клавиатуре символ.

30. Прерывания bios и dos.

BIOS использует векторы прерываний микропроцессора 8088. Эти векторы служат для нескольких различных целей. Первый блок векторов имеет дело непосредственно с аппаратными прерываниями. Программы обслуживающие эти прерывания получают управление всегда, когда возникает аппаратное прерывание. Например, прерывание от клавиатуры использует вектор прерывания 9, расположенный по адресу 9*4 или 24H. BIOS обслуживает не все прерывания инициируемые контроллером 8259. Некоторые прерывания зарезервированы за устройствами фирмы IBM, а другие можно использовать для своих целей. При вызове прерывания имеется определенная информация, которая хранится в таблице векторов прерывания. Таблица формируется при загрузке BIOS и MS-DOS. Векторы прерывания жестко закреплены: 0-ошибка деления ; 1-пошаговое выполнение; 2-аппаратное и маскируемое прерывание; 3-трассировка occh «чтобы установить точки остановок»; 4-переполнение «если установлен флаг переполнения; 5-для печати экрана; 6-выдается ошибка,если в сегмент кода помещены данные; 7-матиматического сопроцессора; 8-прерывание таймера; 9-прерывание клавиатуры; 10h- видеопрерывание; 16h-обслуживание клавиатуры; 17h-обслуж. Принтера; 18h-запуск интропретатора BASIC зашитый в ПЗУ; 19-для загрузки О.С.; 1В-обработчик прерываний; 1С-прерывание программное, вызывается с частотой 18,2Hz; 1F-указатель на графическую таблицу с кодами ASCI 128-255. Установка прерывания: 1) функция прерывания 21H mov AH,35h mov AL, номер прерывания int 21h После возврата ES:BX указывает на функцию прерывания; 2) функция прерывания 25h mov AH, 25h mov AL, номер прерывания DS:DX- задается номер обработчика