Нарисовать изображение (прямоугольник) используя 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. Список действий:

  1. Устанавливаем сегмент данных в сегментный регистр ds.
  2. Передаём в качестве параметра функции int 10h значение al, при этом управляющая функция int 10h выводит на экран символ, код которого содержится в регистре al.
  3. Выводим на экран 30 символов, используя функцию stosw (заполнение кадра), до тех пор, пока не будет выполнено условие цикла up.
  4. Смещаем курсор вправо на 158 позиций (значение переменной di) и выводим на экран 10 символов, используя функцию stosw, до тех пор, пока не будет выполнено условие цикла right.
  5. Смещаем курсор влево на 162 позиции (значение переменной di) и выводим на экран 10 символов, используя функцию stosw, до тех пор, пока не будет выполнено условие цикла left.
  6. Завершаем работу программы с помощью функции int 21h.

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

7   голосов , оценка 3.571 из 5
Похожие ответы