Системное программное обеспечение. Рощин А.В. - 71 стр.

UptoLike

Составители: 

71
Глава 3 Примеры программ
3.1 Ввод-вывод символьной информации
В этой главе рассмотрены различные аспекты ввода-вывода
символьной информации с использованием функций DOS и BIOS, а также
непосредственный вывод информации в область видеопамяти. Все приемы
программирования представлены в виде примеров программ, решающих
конкретные задачи.
Задача 3.1.1. Вывести на середину пустого экрана мигающее слово
"ТЕКСТ" в текстовом режиме CGA 80 символов * 25 строк.
а) Используя функции DOS.
б) Используя функции BIOS.
в) Помещая символы непосредственно в экранную область.
а. Использование функций DOS
Assume CS: Code, DS: Code
Code SEGMENT
org 100h
Start: mov ax,cs
mov ds,ax
; Установка видеорежима 03
mov ah,0 ; Функция 0
mov al,3 ; Режим 3
int 10h
; Вывод текста (мигание в ДОС нельзя)
mov ah,9 ; Функция 9
lea dx,text ; Смещение текста (DS)
int 21h
; Ожидание ввода клавиши пробела
loop1: mov ah,7 ; Функция 7 (нефильтр. ввод без эха)
int 21h
cmp al,' ' ; Пробел ?
jnz loop1 ; Нет !
; Выход из программы
int 20h
text db 25 dup(0ah),0dh ; Очистка экрана
db 38 dup(20h),'ТЕКСТ' ; Вывод слова на середину
db 12 dup(0ah),0dh,'$' ; На середину экрана
Code ENDS
END Start
б. Использование функций BIOS
                                   71



     Глава 3 Примеры программ


     3.1 Ввод-вывод символьной информации

     В этой главе рассмотрены различные аспекты ввода-вывода
символьной информации с использованием функций DOS и BIOS, а также
непосредственный вывод информации в область видеопамяти. Все приемы
программирования представлены в виде примеров программ, решающих
конкретные задачи.
     Задача 3.1.1. Вывести на середину пустого экрана мигающее слово
"ТЕКСТ" в текстовом режиме CGA 80 символов * 25 строк.
      а) Используя функции DOS.
      б) Используя функции BIOS.
      в) Помещая символы непосредственно в экранную область.

а. Использование функций DOS

Assume CS: Code, DS: Code

Code SEGMENT
       org 100h
Start: mov ax,cs
       mov ds,ax
 ; Установка видеорежима 03
       mov ah,0 ; Функция 0
       mov al,3 ; Режим 3
       int  10h
 ; Вывод текста (мигание в ДОС нельзя)
       mov ah,9 ; Функция 9
       lea dx,text ; Смещение текста (DS)
       int  21h
 ; Ожидание ввода клавиши пробела
loop1: mov ah,7 ; Функция 7 (нефильтр. ввод без эха)
       int  21h
       cmp al,' ' ; Пробел ?
       jnz loop1 ; Нет !
 ; Выход из программы
       int  20h
text db     25 dup(0ah),0dh ; Очистка экрана
       db   38 dup(20h),'ТЕКСТ' ; Вывод слова на середину
       db   12 dup(0ah),0dh,'$' ; На середину экрана
Code ENDS
       END Start
б. Использование функций BIOS