Есть задание : Вывод символа с клавиатуры на позицию экрана, указанную курсором, с модификацией положения курсора. Есть код: Code: .model small .stack 100h .data x db 30 y db 10 ;начальные координаты курсора .code .startup ;очистка экрана mov ax, 0B800h;номер сегмента видеобуфера в АХ mov es, ax ;ассоциируем видеобуфер с EХ mov al, " ";символ mov ah, 00000111B;атрибут - белое на черном mov cx, 2000 xor bx, bx ;ВХ=0 (указатель на символ) ;m: mov es:[bx], ax ;запись в видеобуфер символа и атрибута add bx,2 ;увеличиваем указатель на следующий символ loop m ;цикл очистки видеобуфера ;вычисление абсолютного номера позиции курсора mov al, 80 mov bl, y mul bl xor bx, bx mov bl, x add ax, bx ;AX=80*y+x mov bx, ax ;адрес курсора в BX push bx add bx, bx ;bx=bx*2 mov cx, bx ;адрес символа в СХ pop bx again: ;начало ввода символов ;запись позиции курсора в КЭЛТ mov al, 0eh mov dx, 3d4h out dx,al ;выбрали 14 регистр КЭЛТ mov dx, 3d5h mov al, bh out dx, al ;записали в него старший байт адреса курсора mov al, 0fh mov dx, 3d4h out dx,al ;выбрали 15 регистр КЭЛТ mov dx, 3d5h mov al, bl out dx, al ;записали в него младший байт адреса курсора ;запись позиции курсора в буфер BIOS mov ax, 40h mov es, ax ;es указывает на область данных BIOS mov ah, y mov al, x mov es:50h, ax ;запись положения курсора в буфер курсора BIOS mov ax, 0B800h;номер сегмента видеобуфера в АХ mov es, ax ;ассоциируем видеобуфер с EХ mov ah, 08h int 21h;ввод символа без эха (в AL - код символа) cmp al, 1Bh ;не нажат ли ESC je go cmp al, 20h jl again ;фильтруем небуквенные символы mov ah, 00000111B;атрибут - белое на черном push bx mov bx, cx mov es:[bx], ax ;вывод символа pop bx add cx, 2 ;смещаем на следующий символ указатель на символ в видеопамяти inc bx ;увеличиваем номер позиции курсора jmp again;бесконечный цикл с выходом по ESC go: .exit 0 end Че с ним нетак?=( я его транслирую линкую и программа просто висит а не работает
благодарю CroCop удалил пост но он помог установкой видеорежима: mov ax,0003 int 10h ето наслучай если кому нада будет