Передвижение точки (группы точек) при помощи "стрелок" - Assembler

Узнай цену своей работы

Формулировка задачи:

Написать программу которая передвигает точку(группу точек), под управлением "стрелок". Вызов функции вывода сделать в подпрограмме.

Решение задачи: «Передвижение точки (группы точек) при помощи "стрелок"»

textual
Листинг программы
.model small
.386
 
.stack 100h
 
.data
 
.code
start:
mov ax,@data
mov ds,ax
 
xor ah,ah
mov al,03h
int 10h
 
push 0B800h
pop es
mov di,1998
 
mov bx,0207h
 
mov dx,03h
 
mov cx,dx
base:
mov word ptr es:[di],bx
add di,2
loop base
 
sub di,6
 
input:
xor ah,ah
int 16h
 
cmp al,1Bh
je exit
 
cmp ah,48h
je up
 
cmp ah,4Bh
je left
 
cmp ah,4Dh
je right
 
cmp ah,50h
je down
 
up:
mov cx,dx
up_del:
mov word ptr es:[di],0000h
add di,2
loop up_del
 
sub di,6
 
sub di,160
 
mov cx,dx
up_move:
mov word ptr es:[di],bx
add di,2
loop up_move
 
sub di,6
 
jmp next
 
left:
mov cx,dx
left_del:
mov word ptr es:[di],0000h
add di,2
loop left_del
 
sub di,8
 
mov cx,dx
left_move:
mov word ptr es:[di],bx
add di,2
loop left_move
 
sub di,6
 
jmp next
 
right:
mov cx,dx
right_del:
mov word ptr es:[di],0000h
add di,2
loop right_del
 
sub di,4
 
mov cx,dx
right_move:
mov word ptr es:[di],bx
add di,2
loop right_move
 
sub di,6
 
jmp next
 
down:
mov cx,dx
down_del:
mov word ptr es:[di],0000h
add di,2
loop down_del
 
sub di,6
 
add di,160
 
mov cx,dx
down_move:
mov word ptr es:[di],bx
add di,2
loop down_move
 
sub di,6
 
next:
mov word ptr es:[di],bx
jmp input
 
exit:
xor ah,ah
int 16h
 
mov ah,4Ch
mov al,00h
int 21h
end start

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

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