SoloCodigo
Programación General => ASM (Ensamblador) => Mensaje iniciado por: wilferson en Sábado 13 de Junio de 2009, 21:49
-
este es un codigo que escribi y me gustaria que me ayudaran a corregir errores (si no les molesta mucho) funciona en fasm
format mz
format mz
y2 db ?
x2 db ?
;;MODO 13h ;;
;;____________;;
mov ah,0h ;;
mov al,13h ;;
int 10h ;;
;;____________;;
mov cx,50
mov dx,10
mov al,02h
call pix
call readKEY
pix:
;;pixel(X=dx Y=cx)
;;____________;;
mov ah,0ch ;;
;;
mov bh,0h ;;
int 10h ;;
ret
readKEY:
xor ah,ah
int 16h
cmp al,1bh
je fin
ll2:
cmp al,77h
je subir
cmp al,73h
je bajar
cmp al,64h
je rojo
cmp al,61h
je azul
cmp al,20h
je borrar
cmp al,6ch
je linead
jmp readKEY
subir:
sub dx,1h
call pix
jmp readKEY
bajar:
add dx,1h
mov al,07h
call pix
jmp readKEY
rojo:
mov al,04h
add cx,01h
call pix
jmp readKEY
azul:
sub cx,01h
mov al,1h
call pix
jmp readKEY
borrar:
mov dx,0h
continuar_filas:
mov cx,0h
continuar_columnas:
mov ah,0ch
mov al,00h
mov bh,0h
int 10h
add cx,1h
cmp cx,0140h
jz terminar_columnas
jmp continuar_columnas
terminar_columnas:
add dx,1h
cmp dx,0dch
jz terminar_filas
jmp continuar_filas
terminar_filas:
mov cx,50
mov dx,10
call pix
jmp readKEY
fin:
mov ah,0
mov al,3h
int 10h
mov ax, 4C00h
int 21h
ret
linea: ;dx=x1 [x2]
ll1:
cmp dl,[x2]
je fin_x
add dl,01h
cmp cl,[y2]
je fin_y
add cl,01h
call pix
fin_x:
cmp cl,[y2]
je fin_l
jmp ll1
fin_y:
cmp dl,[x2]
je fin_l
jmp ll1
fin_l:
ret
linead:
mov cl,25h
mov dl,25h
mov [x2],60h
mov [y2],60h
call linea
jmp readKEY
-
me gustaria que me ayudaran a corregir errores
No hay problema, pero si especificas cuáles son, nos ahorramos tener que bucear por todo el código y centrarnos en las partes problemáticas.
Un saludo
-
como e visto otros programas en emsamblador pense que este estaba mal estructurado
gracias por responder
-
Y ... ¿¿Ensambla?? No tengo ganas de probar pero no veo segmento de datos, segmento de codigo, funcion de entrada (main).
-
si se emsambla solo que hay puse dos veces "format mz" pero ensambla.
-
¿Y qué tal si pones comentarios en el código? Nadie te va a comer por ello, jejejeje...
-
Bueno, las variables no pueden ir ahi, SE EJECUTAN tal y como estan (dos bytes a 0, add [bx+si], al) ...
¿Cual es el/los problema/s? ¿Las letras que hacen las funciones no son las que queres? ¿La linea no se dibuja adecuadamente? No tenemos bola de cristal aca.