Вывод строки циклом - 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

Объяснение кода листинга программы

  1. Установка сегмента данных (DX) в значение 184FH.
  2. Вывод строки на экран с помощью функции BIOS вывода в сегмент 100H.
  3. Установка регистра AX в значение 600H.
  4. Установка регистра BH в значение 100.
  5. Установка регистра CX в значение 0.
  6. Передача управления регистру DX с помощью команды INT 10H.
  7. Установка регистра AH в значение 9.
  8. Установка регистра DX на адрес строки DBOUT с помощью команды LEA.
  9. Вывод строки на экран с помощью функции BIOS вывода в сегмент 21H.
  10. Команда RET для завершения работы программы.
  11. Строка DBOUT содержит символы 10, 13 и 'string$'.
  12. Значение 100H используется как сегмент для вывода строки.
  13. Значение 600H используется как значение регистра AX.
  14. Значение 100 используется как значение регистра BH.
  15. Значение 0 используется как значение регистра CX.
  16. Значение 184FH используется как значение регистра DX.
  17. Значение 10 используется как сегмент для вывода строки.
  18. Значение 21H используется как сегмент для вывода строки.
  19. Значение 9 используется как значение регистра AH.
  20. Значение 100 используется как сегмент для вывода строки.

Оцени полезность:

7   голосов , оценка 3.857 из 5