Передвижение точки (группы точек) при помощи "стрелок" - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д