Вывести строку символов по указанным координатам в консоли, очертить строку на экране одинарной рамкой - Assembler
Формулировка задачи:
Вывести строку символов по указанным координатам, очертить строку на экране одинарной рамкой.
Windows XP x32, TASM.
Решение задачи: «Вывести строку символов по указанным координатам в консоли, очертить строку на экране одинарной рамкой»
textual
Листинг программы
- .model small
- .8086
- .data
- msg db 'iloveasm!'
- len equ $-msg
- .stack
- db 255 dup(?)
- .code
- start:
- mov ax,@data
- mov ds,ax
- mov ah,00h
- mov al,03h
- int 10h
- push 0B800h
- pop es
- mov di,500
- mov ah,02h
- mov cx,len
- slowo:
- lodsb
- stosw
- loop slowo
- mov ah,0FFh
- mov di,336
- mov cx,len+3
- up:
- xor al,al
- stosw
- loop up
- mov di,656
- mov cx,len+3
- down:
- xor al,al
- stosw
- loop down
- mov di,360
- mov cx,3
- right:
- xor al,al
- stosw
- add di,158
- loop right
- left:
- mov di,496
- stosw
- xor ah,ah
- int 16h
- mov ah,4Ch
- mov al,00h
- int 21h
- end start
Объяснение кода листинга программы
- Устанавливаются сегменты данных и стека.
- Выводится строка 'iloveasm!' с помощью функции BIOS int 10h.
- Начинается цикл по выводу символов строки с использованием функции BIOS int 10h.
- Выполняется прокрутка строки на экране одинарной рамкой с использованием функции BIOS int 10h.
- Устанавливаются начальные координаты для вывода символов рамки.
- Выполняется вывод символов рамки с использованием функции BIOS int 10h.
- Устанавливаются начальные координаты для вывода символов рамки.
- Выполняется вывод символов рамки с использованием функции BIOS int 10h.
- Устанавливаются начальные координаты для вывода символов рамки.
- Выполняется вывод символов рамки с использованием функции BIOS int 10h.
- Завершается выполнение программы с помощью функции BIOS int 21h.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д