Рисование линий через прерывания в видеорежиме - Assembler
Формулировка задачи:
Решение задачи: «Рисование линий через прерывания в видеорежиме»
;TASM, COM-файл ;tasm.exe /m filename.asm ;tlink.exe /t /x filename.obj ; .model tiny .code .386 ORG 100h START: mov ax,12h ;установка видеорежима 640x480x16 цветов int 10h mov ax,0c0ah ;функция и цвет - светлозеленый mov dx,480/2 ;Y mov cx,640/2 ;X xor bh,bh int 10h m1: xor ax,ax ;получить клавишу int 16h cmp al,27 ;Esc? jz short exit cmp ah,48h ;вверх jnz short m2 cmp dx,2 ;верхняя граница jz short m1 dec dx mov ax,0c0ah ;функция и цвет - светлозеленый int 10h jmp short m1 m2: cmp ah,50h ;вниз jnz short m3 cmp dx,479 ;нижняя границя jz short m1 inc dx mov ax,0c0ah int 10h jmp short m1 m3: cmp ah,4bh ;влево jnz short m4 or cx,cx ;лева граница jz short m1 dec cx mov ax,0c0ah int 10h jmp short m1 m4: cmp ah,4dh ;вправо jnz short m1 cmp cx,639 ;правая граница jz short m1 inc cx mov ax,0c0ah int 10h jmp short m1 exit: mov ax,3 ;текстовый режим int 10h ret ;завершить программу end start 0 - черный 8 - серый 1 - синий 9 - голубой 2 - зеленый 10 - светлозеленый 3 - циан 11 - светлый циан 4 - красный 12 - светлокрасный 5 - магента 13 - светлая магента 6 - коричневый 14 - желтый 7 - белый 15 - яркобелый
Объяснение кода листинга программы
Код рисует линии через прерывания в видеорежиме 640x480x16 цветов. Он начинает с установки видеорежима 640x480x16 цветов, используя функцию 10h. Затем код определяет функцию и цвет для светлозелёного, используя регистры AX, CX и DX для хранения X, Y и цвета. Используя цикл, пока не будет нажата клавиша Esc, код перемещает курсор вверх и вниз и слева направо, используя функции 48h, 50h, 4bh и 4dh для движения в соответствующих направлениях. Когда обнаруживается, что курсор достиг верхней или нижней границы, или если была нажата клавиша Esc, код возвращает в меню. Код также включает в себя следующие числа и их значения: 0 - черный 8 - серый 1 - синий 9 - голубой 2 - зеленый 10 - светлозеленый 3 - циан 11 - светлый циан 4 - красный 12 - светлокрасный 5 - магента 13 - светлая магента 6 - коричневый 14 - желтый 7 - белый 15 - яркобелый
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д