Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .model small
- .stack 100h
- .data
- string1 db 100
- row db (?)
- col db (?)
- color db 0
- msgInp1 db "Input string:$"
- msgInp2 db " color:$"
- cstring db 4 dup (?)
- .code
- start proc
- mov ax,@data
- mov ds,ax
- call InputProc
- call OutputProc
- mov ax,4c00h
- int 21h
- ret
- endp
- mac macro string_v
- local m1
- m1:
- mov dx, offset string_v
- mov ah,09h
- int 21h
- mov dx, offset cstring
- mov ah, 0ah
- int 21h
- mov al, cstring[0]
- add color, al
- mov al, cstring[1]
- add color, al
- mov al, cstring[2]
- add color, al
- ; mov al, cstring[3]
- ; add color, al
- endm
- NewStr proc
- mov dl,10
- mov ah,2
- int 21h
- ret
- endp
- OutMsg proc
- mov ah,9
- int 21h
- ret
- endp
- inputStr proc
- mov ah,0Ah
- int 21h
- ret
- endp
- InputProc proc
- mov dx,offset msgInp1
- call OutMsg
- mov dx,offset string1
- call inputStr
- call newStr
- mac msgInp2
- ;mov color, ah
- ;mov dx, offset color
- ;call inputStr
- ;call newStr
- ret
- endp
- OutputProc proc
- ;mov al,Len1
- ;mov dx,offset 2
- ; Очистка экрана текущей видеостраницы
- mov ah, 00h
- mov al, 03h
- int 10h
- ; mov ax, @data
- ; mov ds, ax
- ; Установка адресного регистра на начало строки
- mov di, offset string1+5
- mov row, 10
- mov col, 38
- m1:
- ; Позиционирование курсора
- mov ah, 02h
- mov dh, row
- mov dl, col
- int 10h
- ; Считывание в регистр al одного символа из строки и проверка на конец строки. Если встречается символ $, то считает - конец строки и выход из программы.
- mov al, [di]
- cmp al, "$"
- jz m2
- ; Вывод на экран на бордовом фоне синим цветом (определяется содержимым bl) одного символа (определяется cx), код которого помещается в регистр al. Выбрана нулевая видеостраница.
- mov ah, 09h
- mov bh, 00h
- mov bl, color
- mov al, [di]
- mov cx, 01h
- int 10h
- ; переход к следующему символу (увеличение di), изменение горизонтальной позиции курсора. Происходит безусловный переход на начало цикла. Цикл будет окончен, если встретиться знак "$".
- inc di
- inc col
- jmp m1
- ;call OutMsg
- m2:
- mov ax, 4c00h
- int 21h
- ret
- endp
- end start
Add Comment
Please, Sign In to add comment