Как подключить графический режим? masm32 - Assembler
Формулировка задачи:
Объясните пожалуйста как подключить графический режим(dos) и нарисовать линию? Хотелось бы узнать как выглядит графика на ассемблере
Решение задачи: «Как подключить графический режим? masm32»
textual
Листинг программы
.286 .model tiny .code ORG 100h start: MOV AH,0Fh INT 10h MOV VIDEOR,AL MOV AX, 0013h INT 10h MOV ax,0A000h MOV ES,ax MOV DI,0 MOV CX,0 MOV DL,2 MOV AX,320 MUL CX MOV BX,AX MOV ES:[BX][DI],DL; XOR AX,AX INT 16h MOV AH,0 ;восстановление видеорежима MOV AL,VIDEOR INT 10h ret ;выход из программы VIDEOR DB ? END start
Объяснение кода листинга программы
- Устанавливаем модель процессора на 286.
- Устанавливаем модель памяти на
tiny
. - Определяем сегмент кода.
- Задаём точку входа в программу.
- Перемещаем регистр AH на 0Fh для вывода сообщения об ошибке.
- Вызываем BIOS для вывода сообщения об ошибке.
- Сохраняем значение регистра AL в переменной VIDEOR.
- Устанавливаем сегмент данных на 0013h.
- Вызываем BIOS для установки сегмента данных.
- Устанавливаем сегмент стека на 0A000h.
- Устанавливаем сегментку для видеобуфера на ES.
- Устанавливаем байт указателя на видеобуфер на DI.
- Устанавливаем байт указателя на количество строк на CX.
- Устанавливаем байт указателя на атрибуты видеобуфера на DL.
- Устанавливаем байт указателя на количество байтов на строке на BX.
- Записываем значение DL в ES:[BX][DI].
- Устанавливаем регистр AX на 320.
- Умножаем CX на AX.
- Записываем результат в BX.
- Записываем байт атрибута в ES:[BX][DI].
- Восстанавливаем видеорежим.
- Задаём регистру AH значение VIDEOR.
- Вызываем BIOS для восстановления видеорежима.
- Завершаем программу.
- В переменную VIDEOR записывается байт, определяющий видеорежим.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д