Вывод красной горизонтальной линии с использование адресации - Assembler

Узнай цену своей работы

Формулировка задачи:

Нужно вывести красную горизонтальную линию из 30 знаков. Есть такой набросок кода (Assembler 8086), пока он только выводит один символ стандартного цвета. Была попытка использовать цикл, но он очевидно не работает. Буду рада любым подсказкам.
Листинг программы
  1. org 100h
  2. mov ax, 0B800h
  3. mov es, ax
  4. mov ax, [y]
  5. mov bx, 80
  6. mul bx
  7. mov bp, ax
  8. add ax: [x]
  9. shl ax, 1
  10. mov cx, 30
  11. petla:
  12. mov byte [es:bp], 219
  13. loop petla
  14. mov ax, 4c00h
  15. int 21h
  16. x: dw 40
  17. y: dw 40

Решение задачи: «Вывод красной горизонтальной линии с использование адресации»

textual
Листинг программы
  1. org 100h
  2. mov ax,3
  3. int 10h
  4. mov ax,0xb800
  5. mov es,ax
  6. mov al,160
  7. mul [y]
  8. mov di,ax
  9. add di,[x]
  10. add di,[x]
  11. mov ax,0xc020
  12. mov cx,30
  13. rep stosw
  14. xor ah,ah
  15. int 16h
  16. ret
  17. x dw 40
  18. y db 10

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

  1. org 100h — Начало выполнения программы. Установка сегмента данных в 100h.
  2. mov ax,3 — Переменная ax содержит 3.
  3. int 10h — Вывод числа 3 на экран.
  4. mov ax,0xb800 — Переменная ax содержит базовый адрес видеопамяти (0xb800).
  5. mov es,ax — Установка сегмента стека в базовый адрес видеопамяти.
  6. mov al,160 — Переменная al содержит 160.
  7. mul [y] — Умножение al на значение переменной y. Результат сохраняется в ax.
  8. mov di,ax — Переменная di содержит результат умножения.
  9. add di,[x] — Добавление значения di к значению по адресу [x].
  10. add di,[x] — Добавление значения di к значению по адресу [x].
  11. mov ax,0xc020 — Переменная ax содержит 0xc020.
  12. mov cx,30 — Переменная cx содержит 30.
  13. rep stosw — Выполнение операции stosw 30 раз, начиная с адреса 0xc020.
  14. xor ah,ah — Переменная ah устанавливается в 0.
  15. int 16h — Выполнение команды interrupt 16h.
  16. ret — Конец выполнения программы.
  17. x dw 40 — Объявление переменной x типа dw (слова) со значением 40.
  18. y db 10 — Объявление переменной y типа db (байты) со значением 10.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

13   голосов , оценка 3.692 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы