Вывести полученную строку 3 раза разным цветом - Assembler
Формулировка задачи:
Подскажите пожалуйста, а то с Assembler на вы
Нужно ввести строку, добавить в конец строки *****, вывести полученную строку 3 раза разным цветом в разных частях экрана.
.model small .data str db 0ah, 0dh, 11 dup ('$') message db 'Symbol: $' .stack 256h .code main: mov ax,@data mov ds,ax mov cl,0 lea si,str+2 lea dx,message mov ah,09h int 21h mov ah,01 m1:int 21h mov [si],al inc si inc cl cmp cl,10 jne m1 lea dx,str mov ah,09h int 21h mov ah,4ch int 21h end main
Решение задачи: «Вывести полученную строку 3 раза разным цветом»
textual
Листинг программы
mov ax, 1301h ;функция вывода строки mov bl, Color ;bl - цвет текста, сразу меняем mov bh, 00h ;страница видеопамяти mov dl, dl ;позиция X экрана (не меняем - используем текущую) mov dh, dh ;позиция Y экрана (не меняем - используем текущую) mov cx, StrLen ;длина строки lea bp, [String];в es:bp помещаем адрес начала строки push ds pop es int 10h
Объяснение кода листинга программы
Вывод:
- В начале кода подключается библиотека int 10h, которая отвечает за вывод текстовой информации на экран.
- Далее, с помощью mov, передаются необходимые параметры для функции вывода строки: — ax = 1301h — функция вывода строки — bl = Color — цвет текста — bh = 00h — страница видеопамяти — dl = dl — позиция X экрана (не меняем — используем текущую) — dh = dh — позиция Y экрана (не меняем — используем текущую) — cx = StrLen — длина строки — bp = [String] — в es:bp помещается адрес начала строки
- После этого, с помощью push ds и pop es, меняется сегмент данных на сегмент строки.
- В конце кода происходит вызов функции вывода строки с помощью int 10h.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д