.MODEL SMALL
.STACK 256
.DATA
;-----------------messages------------------------------------------------------
message1 db 'Навчальна програма',0ah,0dh,'$'
db 'Ўнтерфейс переривання int 10h',0ah,0dh,'$'
db 'Робота з екраном',0ah,0dh,'$'
db 'Для отримання ўнформацў натиснўть такў клавўшў:',0ah,0dh,'$'
db 'А-справка функцўй переривання int10h',0ah,0dh,'$'
db 'ESC-вихўд',0ah,0dh,'$'

message2 db 'Данў клавўшў вўдповўдають за ўнформацўю про',0ah,0dh,'$'
db 'такў функцў переривання int 10h',0ah,0dh,'$'
db '1-00h',0ah,0dh,'$'
db '2-01h',0ah,0dh,'$'
db '3-02h',0ah,0dh,'$'
db '4-03h',0ah,0dh,'$'
db '5-05h',0ah,0dh,'$'
db '6-06h-07h',0ah,0dh,'$'
db '7-08h',0ah,0dh,'$'
db '8-09h',0ah,0dh,'$'
db '9-0ah',0ah,0dh,'$'
db 'B-0bh',0ah,0dh,'$'
db 'C-0ch',0ah,0dh,'$'
db 'D-0dh',0ah,0dh,'$'
db 'E-0eh',0ah,0dh,'$'
db 'F-0fh',0ah,0dh,'$'
db 'ESC-вихўд',0ah,0dh,'$'
;00h
message3 db 'Ф-я 00Н встановлюї вўдеорежим',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db 'Приклад застосування функцў у програмў',0ah,0dh,'$'
db 'mov ah, 00h;запит на становлення вўдеорежиму',0ah,0dh,'$'
db 'mov al, 03h;стандартний кольоровий вўдеорежим',0ah,0dh,'$'
db 'int 10h ;виклик переривання',0ah,0dh,'$'
;01h
message4 db 'Ф-я 01Н встановлюї розмўр курсора',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db 'Приклад застосування функцў у програмў',0ah,0dh,'$'
db 'mov ah, 01h;запит на становлення розмўру курсора',0ah,0dh,'$'
db 'mov ch, 00 ;початкова стрўчка',0ah,0dh,'$'
db 'mov cl, 14 ;кўнцева стрўчка',0ah,0dh,'$'
db 'int 10h ;виклик переривання',0ah,0dh,'$'
;02h
message5 db 'Ф-я запиту перемўщення курсора',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db 'Приклад застосування функцў у програмў',0ah,0dh,'$'
db 'mov ah, 02h;запит перемўщення курсора',0ah,0dh,'$'
db 'mov bh, 00 ;сторўнка ',0ah,0dh,'$'
db 'mov dh, 12 ;стрўчка',0ah,0dh,'$'
db 'mov dl, 30 ;стовпчик',0ah,0dh,'$'
db 'int 10h ;виклик переривання',0ah,0dh,'$'
;03h
message6 db 'Ф-я запиту стану курсора',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db 'Приклад застосування функцў у програмў',0ah,0dh,'$'
db 'mov ah, 03h;запит стану курсора',0ah,0dh,'$'
db 'mov bh, 00 ;сторўнка 0',0ah,0dh,'$'
db 'int 10h ;виклик переривання',0ah,0dh,'$'
db 'mov ah, 02h;запит перемўщення курсора',0ah,0dh,'$'
db 'inc dl ;в наступний стовпчик',0ah,0dh,'$'
db 'int 10h ;виклик переривання',0ah,0dh,'$'
;05h
message7 db 'Ф-я вибору активно сторўнки',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db 'Приклад застосування функцў у програмў',0ah,0dh,'$'
db 'mov ah, 05h;вибўр функцў для виводу сторўнки',0ah,0dh,'$'
db 'mov al, 00 ;сторўнка 0',0ah,0dh,'$'
db 'int 10h ;виклик переривання',0ah,0dh,'$'
;06h-07h
message8 db 'Ф-я прокрутки сторўнки',0ah,0dh,'$'
db '06Н-вверх,07Н-вниз',0ah,0dh,'$'
db 'Приклад застосування функцў у програмў',0ah,0dh,'$'
db 'mov ax, 601h ;запит на прокрутку вверх на одну стрўчку ',0ah,0dh,'$'
db 'mov bh, 61h ;коричневий фон,синў символи',0ah,0dh,'$'
db 'mov cx, 0000 ;вўд 00:00 до',0ah,0dh,'$'
db 'mov dx, 184fh;42:79(весь екран)',0ah,0dh,'$'
db 'int 10h ;виклик переривання',0ah,0dh,'$'
db '-------або------------',0ah,0dh,'$'
db 'mov ax,0607h ;прокрутка вверх на 7 стрўчок',0ah,0dh,'$'
db 'mov bh, 30h ;голубий фон ,чорнў символи',0ah,0dh,'$'
db 'mov cx, 0c19h;вўд 12 стрўчки,25 стовпчика до',0ah,0dh,'$'
db 'mov dx, 184fh;18 стрўчки ,54 стовпчика(вўкно)',0ah,0dh,'$'
db 'int 10h ;виклик переривання',0ah,0dh,'$'
db '--встановлення стрўчки в червоний колўр--',0ah,0dh,'$'
db 'mov ax, 060fh;прокрутка на 15 стрўчок',0ah,0dh,'$'
db 'mov bx, 0100b;значеня пўкселя ',0ah,0dh,'$'
db 'mov cx, 0a0h ;вўд сторўнки 10, 00 стовпчика',0ah,0dh,'$'
db 'mov dx, 184fh;до сторўнки 24,79 стовпчика',0ah,0dh,'$'
db 'int 10h ;виклик переривання',0ah,0dh,'$'
;08h
message9 db 'Ф-я зчитування символа ў його атрибутўв в положеннў курсора',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db 'Приклад застосування функцў у програмў',0ah,0dh,'$'
db 'mov ah, 08h;запит зчитування символа ў атрибутўв',0ah,0dh,'$'
db 'mov bh, 00 ;сторўнка 0',0ah,0dh,'$'
db 'int 10h ;виклик переривання',0ah,0dh,'$'
;09h
message10 db 'Ф-я виводу символа ў його атрибутўв в положеннў курсора',0ah,0dh,'$'
db 'Приклад застосування функцў у програмў',0ah,0dh,'$'
db '---60 обличчь ,що усмўхаються(смайликўв)---',0ah,0dh,'$'
db 'mov ah, 09h;запит на вивўд',0ah,0dh,'$'
db 'mov al, 01h;символ,що виводиться',0ah,0dh,'$'
db 'mov bh, 0 ;сторўнка ',0ah,0dh,'$'
db 'mov bl, 16h;синўй фон ,коричневў символи',0ah,0dh,'$'
db 'mov cx, 60 ;число символўв',0ah,0dh,'$'
db 'int 10h ;виклик переривання',0ah,0dh,'$'
db '-----10 сердечок-----',0ah,0dh,'$'
db 'mov ah, 09h;запит на вивўд',0ah,0dh,'$'
db 'mov al, 03h;символ,що виводиться',0ah,0dh,'$'
db 'mov bh, 00 ;сорўнка',0ah,0dh,'$'
db 'mov bl, 16h;синўй фон ,коричневў символи',0ah,0dh,'$'
db 'mov cx, 10 ;число символўв',0ah,0dh,'$'
db 'int 10h ;виклик переривання',0ah,0dh,'$'
;0ah
message11 db 'Ф-я виводу символа в положеннў курсора',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db 'Приклад застосування функцў у програмў',0ah,0dh,'$'
db 'mov ah, 0ah;запит на вивўд',0ah,0dh,'$'
db 'mov al, '*';символ ',0ah,0dh,'$'
db 'mov bh, 00 ;сторўнка ',0ah,0dh,'$'
db 'mov bl, 04h;пўксель',0ah,0dh,'$'
db 'mov cx, 12 ;число символўв-12',0ah,0dh,'$'
db 'int 10h ;виклик переривання',0ah,0dh,'$'
;0bh
message12 db 'Ф-я встановлення кольорово палўтри',0ah,0dh,'$'
db 'якщо bh=00, тодў bl може набувати значень вўд 00 до 0fh',0ah,0dh,'$'
db 'bh=01-> 0 or 1',0ah,0dh,'$'
db '',0ah,0dh,'$'
db 'Приклад застосування функцў у програмў',0ah,0dh,'$'
db 'mov ah, 0bh;запит ',0ah,0dh,'$'
db 'mov bh, 00 ;вибўр кольору фону',0ah,0dh,'$'
db 'mov bl, 04 ;червоний колўр(00-0fh)',0ah,0dh,'$'
db 'int 10h ;виклик переривання'',0ah,0dh,'$'
;0ch
message13 db 'Ф-я запиту на малювання пўкселя ',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db 'Приклад застосування функцў у програмў',0ah,0dh,'$'
db 'mov ah, 0ch;запит на малювання пўкселя',0ah,0dh,'$'
db 'mov al, 03h;колўр пўкселя ',0ah,0dh,'$'
db 'mov bh, 0 ;сторўнка',0ah,0dh,'$'
db 'mov dx,50 ;вертикальна координата',0ah,0dh,'$'
db 'mov cx, 200;горизонтальна координата',0ah,0dh,'$'
db 'int 10h ;виклик переривання'',0ah,0dh,'$'
;0dh
message14 db 'Ф-я запиту на читання пўкселя ',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db 'Приклад застосування функцў у програмў',0ah,0dh,'$'
db 'mov ah, 0dh;запит на читання',0ah,0dh,'$'
db 'mov bh ,0 ;сторўнка',0ah,0dh,'$'
db 'mov dx, 110;вертикальна координата',0ah,0dh,'$'
db 'mov cx, 80 ;горизонтальна координата',0ah,0dh,'$'
db 'int 10h ;виклик переривання'',0ah,0dh,'$'
;0eh
message15 db 'Ф-я виводу в режимў телетайпа',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db 'Приклад застосування функцў у програмў',0ah,0dh,'$'
db 'mov ah, 0eh;запит на вивўд ',0ah,0dh,'$'
db 'mov al, '*';символ ',0ah,0dh,'$'
db 'mov bl, 04 ;колўр ',0ah,0dh,'$'
db 'int 10h ;виклик переривання'',0ah,0dh,'$'
;0fh
message16 db 'Ф-я руху вўдеорежиму',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db '',0ah,0dh,'$'
db 'Приклад застосування функцў у програмў',0ah,0dh,'$'
db 'mov ah, 0fh;запит',0ah,0dh,'$'
db 'int 10h ;виклик переривання'',0ah,0dh,'$'
db 'cmp al, 03 ;якщо режим 3,то ',0ah,0dh,'$'
db 'je... ;перейти...',0ah,0dh,'$'

str db ' Дану навчальну програму про ',0ah,0dh,'$'
db ' ўнтерфейс переривання int 10h',0ah,0dh,'$'
db ' розробила студентка групи КН-219 ',0ah,0dh,'$'
db ' КЎНДЎЙ ХРИСТИНА МИХАЙЛЎВНА ',0AH,0DH,'$'
;---------------------------end of masseges------------------------------------------------
.CODE
MAIN PROC FAR
MOV AX,@data
MOV DS,AX
MOV ES,AX
;--------------------my proc------------------------------------------------
mov dx, offset message1
mov ah,9
int 21h
CALL hol_zchut
CALL getch
mov dx, offset str
mov ah, 9
int 21h
;---------------------------------------------------------------------------
MOV AX,4C00H ;4C00 - prog_end
int 21H
MAIN ENDP
;-----------------hol_zchut---------------------------------------------
hol_zchut proc near
mov ah, 08h
int 21h
L1: cmp al, 0h
jne L2
JMP L1
L2: cmp al, 27
je ESC
cmp al, 'A'
je L_A
cmp al, 'a'
je L_A
JMP L1
ESC: RET
L_A: call keyA

ret
hol_zchut endp
;------------------keyA---------------------------------------------
keyA proc near
call clrscr
mov dx, offset message2
mov ah,9
int 21h
mov ah, 08h
int 21h
L1: cmp al, 0h
jne L2
JMP L1
L2: cmp al, 27
je ESC
cmp al, '1'
je L_1
cmp al, '2'
je L_2
cmp al, '3'
je L_3
cmp al, '4'
je L_4
cmp al, '5'
je L_5
cmp al, '6'
je L_6
cmp al, '7'
je L_7
cmp al, '8'
je L_8
cmp al, '9'
je L_9
cmp al, 'B'
je L_B
cmp al, 'b'
je L_B
cmp al, 'C'
je L_C
cmp al, 'c'
je L_C
cmp al, 'E'
je L_E
cmp al, 'e'
je L_E
cmp al, 'F'
je L_F
cmp al, 'f'
je L_F
cmp al, 'D'
je L_D
cmp al, 'd'
je L_D

JMP L1
ESC: RET
L_1: call key1
L_2: call key2
L_3: call key3
L_4: call key4
L_5: call key5
L_6: call key6
L_7: call key7
L_8: call key8
L_9: call key9
L_B: call keyB
L_C: call keyC
L_D: call keyD
L_E: call keyE
L_F: call keyF
ret
keyA endp
;------------------------key1--------------------------------------
key1 proc near
call clrscr
mov dx, offset message3
mov ah,9
int 21h
mov ah, 08h
int 21h
L1: cmp al, 27
jne esc
JMP L1
esc: ret
ret
key1 endp
;----------------------key2-----------------------------------------
key2 proc near
call clrscr
mov dx, offset message4
mov ah,9
int 21h
mov ah, 08h
int 21h
L1: cmp al, 27
jne esc
JMP L1
esc: ret
ret
key2 endp
;----------------------key3-------------------------------------------
key3 proc near
call clrscr
mov dx, offset message5
mov ah,9
int 21h
mov ah, 08h
int 21h
L1: cmp al, 27
jne esc
JMP L1
esc: ret
ret
key3 endp
;---------------------------key4--------------------------------------
key4 proc near
call clrscr
mov dx, offset message6
mov ah,9
int 21h
mov ah, 08h
int 21h
L1: cmp al, 27
jne esc
JMP L1
esc: ret
ret
key4 endp
;------------------------key5---------------------------------------------
key5 proc near
call clrscr
mov dx, offset message7
mov ah,9
int 21h
mov ah, 08h
int 21h
L1: cmp al, 27
jne esc
JMP L1
esc: ret
ret
key5 endp
;----------------------------key6-----------------------------------------
key6 proc near
call clrscr
mov dx, offset message8
mov ah,9
int 21h
mov ah, 08h
int 21h
L1: cmp al, 27
jne esc
JMP L1
esc: ret
ret
key6 endp
;---------------------------key7-----------------------------------------
key7 proc near
call clrscr
mov dx, offset message9
mov ah,9
int 21h
mov ah, 08h
int 21h
L1: cmp al, 27
jne esc
JMP L1
esc: ret
ret
key7 endp
;----------------------------key8-------------------------------------
key8 proc near
call clrscr
mov dx, offset message10
mov ah,9
int 21h
mov ah, 08h
int 21h
L1: cmp al, 27
jne esc
JMP L1
esc: ret
ret
key8 endp
;--------------------------key9----------------------------
key9 proc near
call clrscr
mov dx, offset message11
mov ah,9
int 21h
mov ah, 08h
int 21h
L1: cmp al, 27
jne esc
JMP L1
esc: ret
ret
key9 endp
;---------------------------keyB------------------------------------
keyB proc near
call clrscr
mov dx, offset message12
mov ah,9
int 21h
mov ah, 08h
int 21h
L1: cmp al, 27
jne esc
JMP L1
esc: ret
ret
keyB endp
;--------------------------------keyC-------------------------
keyC proc near
call clrscr
mov dx, offset message13
mov ah,9
int 21h
mov ah, 08h
int 21h
L1: cmp al, 27
jne esc
JMP L1
esc: ret
ret
keyC endp
;----------------------------keyD----------------------------------
keyD proc near
call clrscr
mov dx, offset message14
mov ah,9
int 21h
mov ah, 08h
int 21h
L1: cmp al, 27
jne esc
JMP L1
esc: ret
ret
keyD endp
;---------------------------keyE-------------------------------
keyE proc near
call clrscr
mov dx, offset message15
mov ah,9
int 21h
mov ah, 08h
int 21h
L1: cmp al, 27
jne esc
JMP L1
esc: ret
ret
keyE endp
;---------------------------------------keyF-------------------
keyF proc near
call clrscr
mov dx, offset message16
mov ah,9
int 21h
mov ah, 08h
int 21h
L1: cmp al, 27
jne esc
JMP L1
esc: ret
ret
keyF endp
;-----------------clrscr----------------------------------------------
clrscr proc near
mov ax, 0600
mov bh, 07h
mov cx, 0000h
mov dx, 184fh
int 10h
ret
clrscr endp
;-------------------getch----------------------------------------------
getch proc near
mov ah, 00h
int 16h
ret
getch endp
;------------------------------------------------------------------
END MAIN
http://antibotan.com/ - Всеукраїнський студентський арх?в