Вывод строки циклом - Assembler
Формулировка задачи:
Как организовать самый простой цикл для вывода всей строки в цвете (чтоб такому барану как я было понятно) в TASM ? Заранее спасибо.
; вывод цветного текста .model tiny .code org 100h start: MOV AH,09 ;Функция вывода MOV dx,m ;Выводимый символ MOV BH,0 ;Номер страницы (текст.реж.) MOV BL,14 ;Атрибут или цвет MOV CX,20 ;Число повторений символа INT 10H ;Вызвать BIOS ret m db 'Hello, world!!!, $' end start
Решение задачи: «Вывод строки циклом»
textual
Листинг программы
model tiny .code org 100h start: mov ax,600h mov bh,100 mov cx,0 mov dx,184fh int 10h mov ah,9 lea dx,dbOut int 21h ret dbOut db 10,13,'string$' end start
Объяснение кода листинга программы
- Установка сегмента данных (DX) в значение 184FH.
- Вывод строки на экран с помощью функции BIOS вывода в сегмент 100H.
- Установка регистра AX в значение 600H.
- Установка регистра BH в значение 100.
- Установка регистра CX в значение 0.
- Передача управления регистру DX с помощью команды INT 10H.
- Установка регистра AH в значение 9.
- Установка регистра DX на адрес строки DBOUT с помощью команды LEA.
- Вывод строки на экран с помощью функции BIOS вывода в сегмент 21H.
- Команда RET для завершения работы программы.
- Строка DBOUT содержит символы 10, 13 и 'string$'.
- Значение 100H используется как сегмент для вывода строки.
- Значение 600H используется как значение регистра AX.
- Значение 100 используется как значение регистра BH.
- Значение 0 используется как значение регистра CX.
- Значение 184FH используется как значение регистра DX.
- Значение 10 используется как сегмент для вывода строки.
- Значение 21H используется как сегмент для вывода строки.
- Значение 9 используется как значение регистра AH.
- Значение 100 используется как сегмент для вывода строки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д