GRAPH MACRO ;iniciamos modo gráfico
MOV AH,00H
MOV AL,12H
INT 10H
ENDM
PALETA MACRO color ;Permite definir la paleta
MOV AH,0BH
MOV BH,00H
MOV BL,color
INT 10H
ENDM
PUNTO MACRO x,y,color
MOV AH,0CH
MOV AL,color ;Color blanco
MOV BH,0
MOV CX,x
MOV DX,y
INT 10H
ENDM
.model small
.stack
.data
xx dw 1
yy dw 1
x dw 320
y dw 240
.code
.startup
GRAPH ;Seteamos modo gráfico 640*480
PALETA 1 ;Color azul
PUSH AX
PUSH BX
mover:
PUNTO xx,yy,0
PUNTO x,y,7
MOV AH,07H ;READKEY
INT 21H ;
CMP AL,56; Caracter '8'
JE UP
CMP AL,52; Caracter '4'
JE LEFT
CMP AL,54; Caracter '6'
JE RIGHT
CMP AL,50; Caracter '2'
JE DOWN
CMP AL,27; Salir
JE SALIR
JNE mover
;UP:
DOWN:
MOV AX,y
MOV yy,AX ;Guardamos posicion anterior
mov bx,x;X lo movemos a XX
MOV xx,bx
INC AX
MOV y,AX
JMP mover
LEFT:
MOV AX,x
MOV xx,AX ;Guardamos posicion anterior
mov bx,y;X lo movemos a XX
MOV yy,bx
DEC AX
MOV x, AX
JMP mover
RIGHT:
MOV AX,x
MOV xx,AX ;Guardamos posicion anterior
mov bx,y;X lo movemos a XX
MOV yy,bx
INC AX
MOV X, AX
JMP mover
;DOWN:
UP:
MOV AX,y
MOV yy,AX ;Guardamos posicion anterior
mov bx,x;X lo movemos a XX
MOV xx,bx
DEC AX
MOV y, AX
JMP mover
JMP mover
MOV AH,07H ;READKEY
INT 21H ;
SALIR:
MOV AH,00H
MOV AL,03H
INT 10H
.exit
end
nota: el codigo esta bien lo cual necesita pocesadores que soporte el ejecuatable.
0 comentarios