Ассемблер и программирование для IBM PC


          

ГЛАВА 23. Прерывания BIOS и DOS - часть 21


Ассемблер для IBM PC. Программы. 32

CALL F10DISP ;Подпрограмма вывода INC SI ;Следующий символ в имени INC COL ;Следующий столбец CALL Q20CURS DEC COUNT ;Уменьшение счетчика JNZ B20 ;Повторить n раз RET B10PRMP ENDP ; вод имени с клавиатуры: ; ---------------------- D10INPT PROC NEAR MOV AN,0AH LEA DX,NAMEPAR INT 21H RET D10INPT ENDP ; Вывод имени с миганием и инверсией: ; ---------------------------------- E10NAME PROC NEAR LEA SI,NAMEFLD ;Адрес имени MOV COL,40 ;Установить столбец E20: CALL Q20CURS ;Установить курсор MOV BL,0FOH ;Мигание и инверсия CALL F10DISP ;Подпрограмма вывода INS SI ;Следующий символ в имени INS COL ;Следующий столбец на экране DES ACTNLEN ;Уменьшить счетчик длины JNZ E20 ;Циклить n раз CMP ROW,20 ;Последняя строка экрана? JAE E30 ; нет INC ROW RET E30: MOV AX,0601H ; да -- CALL Q10CLR ; очистить экран RET E10NAME ENDP ; Вывод символа на экран: ; ---------------------- F10DISP PROC NEAR ;BL (атрибут) уже установлен MOV AN,09 ;Функция вывода на экран MOV AL,[SI] ;Получить символ из имени MOV BH,00 ;Номер страницы MOV CX,01 ;Один символ INT 10H ;Вызов BIOS RET F10DISP ENDP ; Очистка экрана: ; -------------- Q10CLR PROC NEAR ;AX установлен при вызове MOV BH,07 ;Нормальный ч/б MOV CX 0000 MOV DX,184FH

Ассемблер для IBM PC. Программы. 33

INT 10H ;Вызов BIOS RET Q10CLR ENDP ; Установить курсор (строка/столбец): ; ---------------------------------- Q20CURS PROC NEAR MOV AN,02 MOV BH,00 MOV DH,ROW MOV DL,COL INT 10H RET Q20CURS ENDP CODESG ENDS END BEGIN

Расширенная функция Скэн-код

Alt/A до Alt/Z 1E - 2C F1 до F10 3B - 44 Home 47 Стрелка вверх 48 PgUp 49 Стрелка влево 4B Стрелка вправо 4D End 4F Стрелка вниз 50 PgDn 51 Ins 52 Del 53

Ассемблер для IBM PC. Программы. 34

TITLE GRAPHIX (COM) Пример цвета и графики CODESG SEGMENT PARA 'Code' ASSUME CS:CODESG,DS:CODESG,SS:CODESG ORG 100H

MAIN PROC NEAR MOV AN,00 ;Установка режима графики MOV AL,0DH ; для EGA (CGA=04)

MOV AH,0BH ;Установить палитру MOV BH,00 ;Фон MOV BL,02 ;Зеленый INT 10H

MOV BX,00 ;Начальные цвет, MOV CX,00 ; столбец MOV DX,00 ; и строка A50: MOV AH,0CH ;Функция вывода точки MOV AL,BL ;Установить цвет INT 10H ;BX, CX, и DX сохраняются INC CX ;Увеличить столбец CMP CX,320 ;Столбец 320? JNE A50 ; нет - цикл, MOV CX,00 ; да - сбросить столбец INS BL ;Изменить цвет INS DX ;Увеличить строку CMP DX,40 ;Строка 40? JNE A50 ; нет - цикл, RET ; да - завершить MAIN ENDP CODESG ENDS END MAIN




Содержание  Назад  Вперед