русс | укр

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

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

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

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


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

Текст программы представлен в листинге 7.4.


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


Листинг 7.4. Код программы

Data segment

DIRECT db 1 ; направление перемещения

EXIT db 0 ; признак завершения программы (не 0)

SYM db "@" ; символ, выводимый на экран

ATRIBUT1 db 14 ; атрибут символа (жёлтый)

ATRIBUT2 db 10 ; атрибут символа (зелёный)

POS dw 3840 ; позиция начального вывода символа

OLD_CS dw ? ; адрес сегмента старого вектора 1Сh

OLD_IP dw ? ; адрес смещения старого вектора 1Сh

Data ends

Code segment

Assume cs:code, ds:data

; Подпрограмма обработки прерывания 1Сh

NEW_1C proc far

Push ax ; сохранить все регистры

Push bx

Push cx

Push dx

Push ds

Push es

Mov ax, DATA ; установить ds на сегмент данных

Mov ds, ax ; основной программы

Mov ax, 40h ; установить es на

Mov es, ax ; сегмент данных bios

mov ax, es:[1ch]

mov bx, es:[1ah]

Cmp bx , ax

Jne m5

Jmp back



m5: mov al, es:[bx]

mov es:[1ch], bx

Cmp al, 30h

Jnz m1

Mov EXIT, 1

Jmp back



M1: cmp al, 35h

Jne m6

Mov dl, ATRIBUT1

Mov dh, ATRIBUT2

Mov ATRIBUT1, dh

Mov ATRIBUT2, dl

Jmp back



M6: cmp al, 38h ; стрелка вверх

Jz m2

Cmp al, 32h ; стрелка вниз

Jz m3

Cmp al, 34h ; стрелка влево

Jz m4

Cmp al, 36h ; стрелка вправо

Jnz back ; неиспользуемая клавиша

Mov DIRECT, 3

Jmp back



M2: mov DIRECT, 1

Jmp back



M3: mov DIRECT, 4

Jmp back



M4: mov DIRECT, 2

Back: pop es

Pop ds

Pop dx

Pop cx

Pop bx

Pop ax

Iret

NEW_1C endp

; Подпрограмма очистки экрана

CLS proc near

Push cx

Push ax

Push si

Xor si, si

Mov ah, 7

mov dl, ' '

Mov cx, 2000

CL1: mov es:[si], ax

Inc si

Inc si

Loop CL1

Pop si

Pop ax

Pop cx

Ret



<== предыдущая лекция | следующая лекция ==>
Mov dh, 00010100b ; атрибуты: на голубом фоне красный символ | CLS endp


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


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

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

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


 


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

 
 

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

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