Ввести текст, закрасить слова синим цветом, и вывести длину каждого слова - Assembler
Формулировка задачи:
Собственно дано задание:
ввести текст (буду считывать в буфер через DOS ф-ию 0ah). Нужно слова закрасить синим цветом (bios функция. Скорее всего это
и вывести длину каждого слова. Со 2 всё понятно.
А вот с закрашиванием я не могу разобраться.
INT 10h, АН = 08k. Считать символ и атрибут символа в текущей позиции курсора
Вход: AH = 08h
ВН = номер страницы
Выход: АН = атрибут символа
AL = ASCII-код символа
Решение задачи: «Ввести текст, закрасить слова синим цветом, и вывести длину каждого слова»
textual
Листинг программы
.model tiny .code .386 ORG 100h START: mov ah,10 lea dx,buf int 21h mov si,dx add si,2 ;на введенную строку mov ah,3 ;получить положение курсора xor bh,bh ;видеостраница int 10h mov bl,9 ;цвет mov cx,1 ;один символ m1: lodsb ;читать символ cmp al,13 ;конец строки? jz short m2 mov ah,9 ;вывод символа в положение курсора int 10h mov ah,2 ;сменить положение курсора inc dl ;курсор на следующий символ int 10h jmp short m1 m2: xor ax,ax ;pause int 16h mov ax,3 ;востановить параметры экрана int 10h ret ;завершить программу buf db 80 ;одна строка end start