Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КР ассемблер.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
301.06 Кб
Скачать

Федеральное агентство по образованию и науке

Государственное образовательное учреждение высшего профессионального образования

«РЯЗАНСКИЙ ГОСУДАТСТВЕННЫЙ РАДИОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра ИБ

К защите

Руководитель проекта

_____________________

дата, подпись

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

К КУРСОВОЙ РАБОТЕ

по дисциплине

«Языки Ассемблера»

Тема

«ПРИМЕНЕНИЕ СЕРВИСНЫХ ФУНКЦИЙ BIOS ДЛЯ РАБОТЫ

С ЭКРАНОМ И КЛАВИАТУРОЙ»

Выполнили студенты группы 942 ________________________

Арсяков А.И. дата сдачи на проверку, подпись

Александров И.А.

Руководитель ________________ __________________________

Чичикин В.А. оценка дата защиты, подпись

Рязань 2011

Оглавление

1.Введение 3

2. Методические рекомендации 4

2.1. Предмет рассмотрения 4

2.2. Прямое программирование видеобуфера в текстовом режиме 4

2.3. Справочные данные по функциям BIOS 7

2.3.1. Прерывание int 10h. Видеофункции BIOS 7

2.3.2. Рекомендации по использованию видеосервиса BIOS 11

2.3.3. Прерывание int 16h 12

2.3.4. Задержка программных операций 14

3. Практическая часть 15

4. Список литературы 32

1.Введение

Когда-то ассемблер был языком, без знания которого нельзя было заставить компьютер сделать что-либо полезное. Постепенно ситуация менялась. Появлялись более удобные средства общения с компьютером. Но, в отличие от других языков, ассемблер не умирал, более того он не мог сделать этого в принципе. Почему? В поисках ответа попытаемся понять, что такое язык ассемблера вообще.

Если коротко, то язык ассемблера — это символическое представление машинного языка.

Все процессы в машине на самом низком, аппаратном уровне приводятся в действие только командами (инструкциями) машинного языка. Отсюда понятно, что, несмотря на общее название, язык ассемблера для каждого типа компьютера свой. Это касается и внешнего вида программ, написанных на ассемблере, и идей, отражением которых этот язык является.

По-настоящему решить проблемы, связанные с аппаратурой (или даже, более того, зависящие от аппаратуры как, к примеру, повышение быстродействия программы), невозможно без знания ассемблера.

Программист или любой другой пользователь может использовать любые высокоуровневые средства, вплоть до программ построения виртуальных миров и, возможно, даже не подозревать, что на самом деле компьютер выполняет не команды языка, на котором написана его программа, а их трансформированное представление в форме скучной и унылой последовательности команд совсем другого языка — машинного. А теперь представим, что у такого пользователя возникла нестандартная проблема или просто что-то не заладилось. К примеру, его программа должна работать с некоторым необычным устройством или выполнять другие действия, требующие знания принципов работы аппаратуры компьютера. И вот здесь-то и начинается совсем другая история.... Каким бы умным ни был программист, каким бы хорошим ни был язык, на котором он написал свою чудную программу, без знания ассемблера ему не обойтись. И не случайно практически все компиляторы языков высокого уровня содержат средства связи своих модулей с модулями на ассемблере либо поддерживают выход на ассемблерный уровень программирования.

Конечно, время компьютерных универсалов уже прошло. Как говорится нельзя объять необъятное. Но есть нечто общее, своего рода фундамент, на котором строится любое сколь-нибудь серьезное компьютерное образование. Это знания о принципах работы компьютера, его архитектуре и языке ассемблера как отражении и воплощении этих знаний.[1]

2. Методические рекомендации

2.1. Предмет рассмотрения

Все возможности видеосистемы компьютера можно реализовать с помощью видеофункций BIOS прерывания int 10h. Прерывание int 10h обеспечивает: смену видеорежима (текстовый или графический); вывод символьной и текстовой информации; смену шрифтов, настройку цветовой палитры, работу с графическим изображением. Программирование видеосистемы с помощью средств BIOS более громоздко, однако большие возможности и высокая скорость вывода обуславливают широкое использование этого метода в прикладных программах.

В данной работе рассматриваются функции BIOS для обслуживания видеосистемы компьютера, а также функции для работы с клавиатурой. Перечислим функции, являющиеся предметом рассмотрения в работе.

Int 10h:

функция 00h – установка видеорежима;

функция 02h – установка позиции курсора;

функция 03h – считывание позиции и размера курсора;

функция 05h – установка видеостраницы;

функция 06h (07h) – инициализация или прокрутка окна вверх (вниз);

функция 08h – чтение символа и атрибута в позиции курсора;

функция 09h – запись символа и атрибута в позицию курсора;

функция 0Ah – запись символа в позицию курсора с текущим атрибутом;

функция 0Eh – запись символа в режиме телетайпа с текущим атрибутом;

функция 0Fh – получить режим дисплея;

функция 1003h – переключение назначения старшего бита байта атрибута: мерцание/яркость,

функция 13h – запись строки с заданным атрибутом в режиме телетайпа.

Int 16h:

функция 00h (10h) – чтение символа с клавиатуры с ожиданием;

функция 01h (11h) – проверка буфера клавиатуры на наличие в нём символа;

функция 02h (12h) – получение флагов (расширенной) клавиатуры.

Int 15h, функция 86h – задержка.

Int 1Ah, функция 00h – получение системного времени.