Квадрат из "*" и изменяющимися сторонами - Assembler
Формулировка задачи:
Здравствуйте!
Суть задачи в том, что при нажатии стрелки вправо квадрат увеличивается , при нажатии стрелки влево уменьшается. Собственно, как это реализовать в TASM?
Решение задачи: «Квадрат из "*" и изменяющимися сторонами»
textual
Листинг программы
.model small .386 .stack 100h .data u dw 20 r dw 10 d dw 20 l dw 10 tmp dw 0 .code start: mov ax,@data mov ds,ax mov ah,00h mov al,03h int 10h push 0B800h pop es mov di,1020 mov ax,022Ah mov cx,u up: stosw loop up mov cx,r right: stosw add di,158 loop right mov cx,d down: stosw sub di,4 loop down mov cx,l left: stosw sub di,162 loop left ;;;;;;;;;;;;;;;;;;;; input: mov ah,01h int 21h cmp al,1Bh je exit int 21h cmp al,4Dh je big cmp al,4Bh je less jmp input big: mov tmp,1 jmp del less: mov tmp,0 del: mov di,1020 mov ax,0000h mov cx,u up_del: stosw loop up_del mov cx,r right_del: stosw add di,158 loop right_del mov cx,d down_del: stosw sub di,4 loop down_del mov cx,l left_del: stosw sub di,162 loop left_del test tmp,1 jz one two: add u,2 inc r add d,2 inc l jmp change one: sub u,2 dec r sub d,2 dec l change: mov di,1020 mov ax,022Ah mov cx,u up_put: stosw loop up_put mov cx,r right_put: stosw add di,158 loop right_put mov cx,d down_put: stosw sub di,4 loop down_put mov cx,l left_put: stosw sub di,162 loop left_put jmp input exit: mov ah,4Ch mov al,00h int 21h end start
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д