Автор: Пользователь скрыл имя, 15 Декабря 2012 в 13:05, курсовая работа
Первый вопрос, который задает себе человек, впервые услышавший об этом языке программирования, — а зачем он, собственно, нужен? Особенно теперь, когда все пишут на C/C++, Delphi или других языках высокого уровня? Ведь очень многое можно создать на С, но ни один язык, даже такой популярный, не может претендовать на то, чтобы на нем можно было написать действительно «все».
Введение
Теоретическая часть
Средства BIOS
Графическое программирование
Графические видеорежимы
1
2
Принцип работы растрового дисплея
Часы реального времени и системный таймер
Постановка задачи
Стандартные графические режимы SVGA могут быть 4-, 8-, 15-, 16-, 24- и 32-битными.
4-битные режимы (16 цветов):
VGA
012h: 640x480 (64 Кб)
VESA VBE 1.0
102h: 800x600 (256 Кб)
104h: 1024x768 (192 Кб)
106h: 1280x1024 (768 Кб)
Каждый пиксель описывается одним битом, для вывода цветного изображения требуется программирование видеоадаптера на уровне портов ввода-вывода.
Видеоадаптер может поддерживать и собственные нестандартные видеорежимы. Список их номеров можно получить, вызвав подфункцию 00h, а получить информацию о режиме по его номеру — вызвав подфункцию 01h видеофуикции 4Fh. Более того, для стандартных режимов также следует вызывать подфункцию 01h, чтобы проверить реальную доступность режима (например, режим может быть в списке, но не поддерживаться из-за нехватки памяти). VBE 2.0 разрешает видеоадаптерам не поддерживать никаких стандартных режимов вообще.
INT 10h АН = 4Fh, AL = 00 — Получить общую SVGA-информацию
Ввод: |
AX = 4F00h |
Вывод: |
AL = 4Fh, если функция поддерживается |
1.3 Часы реального времени и системный таймер
Начиная с IBM AT, персональные компьютеры содержат два устройства для управления процессами — часы реального времени (RTC) и собственно системный таймер. Часы реального времени получают питание от аккумулятора на материнской плате и работают даже тогда, когда компьютер выключен. Это устройство можно использовать для определения/установки текущих даты и времени, установки будильника с целью выполнения каких-либо действий и для вызова прерывания IRQ8 (INT 4Ah) каждую миллисекунду. Системный таймер используется одновременно для управления контроллером прямого доступа к памяти, для управления динамиком и как генератор импульсов, вызывающий прерывание IRQ0 (INT 8h) 18,2 раза в секунду. Таймер предоставляет богатые возможности для препрограммирования на уровне портов ввода-вывода, но на уровне DOS и BIOS и часы реального времени, и системный таймер используются только как средство определения/установки текущего времени и организации задержек.
Функция DOS 2Ah — Определить дату
Ввод: |
AX = 2Ah |
Вывод: |
СХ = год (1980 – 2099) |
Функция DOS 2Ch — Определить время
Ввод: |
AX = 2Ch |
Вывод: |
СН = час |
Эта функция использует системный таймер, так что время изменяется только 18,2 раза в секунду и число в DL увеличивается сразу на 5 или 6.
Функция DOS 2Bh — Установить дату
Ввод: |
АН = 2Bh |
Вывод: |
АН = FFh, если введена несуществующая
дата, |
Функция DOS 2Dh — Установить время
Ввод: |
АН = 2Dh |
Вывод: |
AL = FFh, если введено
несуществующее время, |
Функции 2Bh и 2Dh устанавливают одновременно как внутренние часы DOS, которые управляются системным таймером и обновляются 18,2 раза в секунду, так и часы реального времени. BIOS позволяет управлять часами напрямую:
INT 1Ah АН = 04h — Определить дату RTC
Ввод: |
АН = 04h |
Вывод: |
CF = 0, если дата прочитана |
INT 1Ah АН = 02h — Определить время RTC
Ввод: |
АН = 02h |
Вывод: |
CF = 0, если время прочитано |
INT 1Ah АН = 05h — Установить дату RTC
Ввод: |
АН = 05h |
INT 1Ah АН = 03h — Установить время RTC
Ввод: |
АН = 03h |
Блок-схема1
Запуск программы
Сохранение исходного
Установка нового видеорежима
Рисование окружности
Отрисовка текущего времени
Проверка нажатия клавиши Esc
Да Нет
Выход
Запуск программы осуществляетс
После запуска программы на экране появятся аналоговые часы с тремя стрелками: часовой, минутной и секундной, отличающимися между собой по длине и цвету.
При нажатии клавиши ESC произойдет выход из программы.
Рис.1 Отображение аналоговых
часов
Заключение
Итак, подводим вывод о проделанной работе. Мы реализовали на языке ассемблер программу «Аналоговые часы» в том представление, каком мы себе представляли вначале. Проделав такую работу мы не только узнали, что такое язык низкого уровня, но и познакомились с ним на практике. Этот процесс расширил наш кругозор, а так же усовершенствовал наши навыки в работе с системами счисления. Благодаря языку ассемблер мы улучшили свои знания по программированию, которые ранее были приобретены в процессе изучения более высокого уровня языка.
Этот язык заинтересовал многих учащихся и не думаю, что хоть кто-нибудь из тех, кто изучал этот язык остался равнодушным к нему.
Список использованной литературы