русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ПРЕРЫВАНИЯ АССЕМБЛЕРА


Дата добавления: 2014-11-28; просмотров: 6259; Нарушение авторских прав


 

Ассемблер имеет возможность, которой завидуют все, кто программирует только на языках высокого уровня. Имеется ввиду возможность оптимальным образом использовать прерывания операционной системы. Ведь это ничто иное, как готовые процедуры. Однако вместо того, чтобы вызывать их по CALL, они вызываются командой INT.

INT 21H вызывает прерывание с шестнадцатеричным номером 21. Имеется ряд таких прерываний, как в базовой системе ввода/вывода, так и в операционной системе, причем некоторые из этих процедур необычайно мощны. На самом деле некоторые из них настолько тесно связаны с системой, что Вы практически не можете сами написать эквивалентную процедуру. Языки высокого уровня позволяют использовать многие из этих прерываний. Они используют их для вывода на экран, приема ввода с клавиатуры и доступа к дискам. Но многие действительно полезные прерывания игнорируются языками высокого уровня, например такие, которые позволяют запустить из одной программы другую.

Перед вызовом прерывания некоторая информация должна быть помещена в регистры процессора. Например, прерывание, вертикально сдвигающее экран, должно знать размеры сдвигаемого окна, число строк на которое его надо сдвинуть и т.д. Эти значения часто называют входными регистрами. Часто Вы будете встречать слова “при входе AX должен содержать ...”, описывающие спецификацию входных регистров. Аналогично, при возврате из прерывания некоторые регистры возвращают значения или информацию о состоянии процессора. Они называются выходными регистрами и мы описываем их словами “при выходе AX содержит ...”. Зачастую одно прерывание содержит много функций. В частности, операционная система включила практически все свои возможности в прерывание 21H. Поэтому при вызове прерывания необходимо указывать номер функции. Все прерывания (как BIOS так и DOS) передают номер функции в AH (иногда в AL содержится номер подфункции).



Ниже перечислены функции DOS, которые могут оказаться полезными для операций ввода - вывода. Код функции устанавливается в регистре AH и затем выдается команда INT 21H.

AH=01: Ввод с клавиатуры с эхоотображением. Данная функция возвращает значение ASCII-кода нажатой клавиши в регистре AL. Нулевое значение в регистре L свидетельствует о том, что на клавиатуре была нажата специальная функциональная клавиша, например, Home, F1 или PageUp.

AH=02: Вывод символа. Для вывода необходимо код символа поместить в регистр DL.

AH=07: Ввод с клавиатуры без эхоотображения. Данная функция аналогична функции 01, но введенный символ не отображается на экране.

AH=09: Вывод на экран строки символов. Адрес строки, заканчивающейся знаком $, должен быть в регистре DX.

AH=0A: Буферизированный ввод с клавиатуры строки символов. Адрес буфера должен быть в регистре DX. Первый байт буфера указывает рабочий размер буфера. Во втором байте буфера находится счетчик символов (фактическое число байтов, введенных с клавиатуры без учета кода Enter). Третий байт - начало входной строки, состоящей из символов ASCII. Конец входной строки - символ возврата каретки (Enter).



<== предыдущая лекция | следующая лекция ==>
КОМАНДЫ АССЕМБЛЕРА | БАЙТ СПОСОБА АДРЕСАЦИИ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.13 сек.