Нарисовать изображение (прямоугольник) используя ASCII коды - Assembler
Формулировка задачи:
Написать программу, которая рисует прямоугольник, с помощью ASCII таблицы (ASCII код).
Решение задачи: «Нарисовать изображение (прямоугольник) используя ASCII коды»
textual
Листинг программы
- .model small
- .386
- .stack 100h
- .data
- .code
- start:
- mov ax,@data
- mov ds,ax
- mov ah,00h
- mov al,03h
- int 10h
- push 0B800h
- pop es
- mov di,350
- mov ax,0209h
- mov cx,30
- up:
- stosw
- loop up
- mov cx,10
- right:
- stosw
- add di,158
- loop right
- mov cx,30
- down:
- stosw
- sub di,4
- loop down
- mov cx,10
- left:
- stosw
- sub di,162
- loop left
- xor ah,ah
- int 16h
- mov ah,4Ch
- mov al,00h
- int 21h
- end start
Объяснение кода листинга программы
На языке ассемблера обычно переводят код, написанный на языке программирования. Ваш код похож на псевдокод, описанный в тексте «Операционная система. Задачи и функции», А. А. Агарков, 2013, ISBN 978-5-91976-048-8. Список действий:
- Устанавливаем сегмент данных в сегментный регистр ds.
- Передаём в качестве параметра функции int 10h значение al, при этом управляющая функция int 10h выводит на экран символ, код которого содержится в регистре al.
- Выводим на экран 30 символов, используя функцию stosw (заполнение кадра), до тех пор, пока не будет выполнено условие цикла up.
- Смещаем курсор вправо на 158 позиций (значение переменной di) и выводим на экран 10 символов, используя функцию stosw, до тех пор, пока не будет выполнено условие цикла right.
- Смещаем курсор влево на 162 позиции (значение переменной di) и выводим на экран 10 символов, используя функцию stosw, до тех пор, пока не будет выполнено условие цикла left.
- Завершаем работу программы с помощью функции int 21h.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д