Проблема возникла непосредственно при написании подпрограммы обработки прерывания 1Ch...
Вот мои наработки по данной программе:
data segment
exit db 0 ;признак завершения программы
sym db "0","1","2","3","4","5","6","7","8","9" ;символ, выводимый на экран
pos dw 3840 ;позиция начального вывода символа
atr db 10 ;атрибут символа(зелёный)
old_cs dw ? ;адрес сегмента старого вектора 1Сh
old_ip dw ? ;адрес смещения старого вектора 1Ch
data ends
code segment
assume cs:code, ds:data
New_1Ch proc ;подпрограмма обработки прерывания 1Ch
iret
New_1Ch endp
ClnScr proc ;программа очистки экрана
push cx
push ax
push si
xor si,si
mov ah, 7
mov dl,' '
mov cx, 2000
cln1:
mov es:[si], ax
inc si
inc si
loop cln1
pop si
pop ax
pop cx
ret
ClnScr endp
Delay proc ;программа задержки
push cx
xor cx,cx
mov cl,9
sal count,cl
xor cx,cx
mov cx,count
d:
loop d
pop cx
ret
Delay endp
Out_Sym proc
push ax
push bx
push si
mov al,[sym+si]
mov ah,atr
mov bx,pos
call Delay
mov es:[bx],ax
pop bx
pop ax
ret
Out_Sym endp
;основная программа
start:
mov ax,data
mov ds,ax
mov ax, 4c00h
int 21h
code ends
end start
Конечно и эти подпрограммы требуют доработок... Вобщем, требуется Ваша помощь...