Examen Práctico de Ensamblador
Hoy fue mi examen práctico de ensamblador. Llegué tranquilo como de costumbre a los exámenes (eey aja, eey,..,eey)...
El objetivo: Realizar una aplicación funcional bajo MSDOS que utilice el modo gráfico, fondo azul, con un punto de color blanco en la pantalla (De preferencia en el centro), y permita moverlo con las teclas 8,4,6 y 2 del teclado numérico.
Y bueno... me tranquilicé y comencé a ordenar las ideas,... Tardé bastante tiempo para terminar, incluso, compañeros que normalmente no les gusta la programación terminaron antes que yo :P , pero bueno, terminé y he ahí el final.
- ;cambiar el fondo a color azul
- ;poner un pixel color blanco
- ;usando la tecla
- ;usando la tecla 8,2,4,6 moveremos el pixel
- 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
Victor
2006-10-31 18:41:42
Olvide mensionar algo... Saqué 10 de calificación :D
Victor
2006-11-01 11:10:09
bueno, pues para cargarlo en el debug hmm,... recuerdo (tengo rato que no lo utilizo) que se tiene que poner <strong>debug</strong> seguido del nombre de la aplicación o creo que también el archivo con con código asm y empezará a recorrer línea por línea debugueando... ¿Si era esa la pregunta? se me fue el cuete :D
ImZyos!
2006-11-01 19:41:52
pues, no es mi maximo aprender asm, no es muy usable para lo que me agra programar, pero siempre es bueno hecharle ojo al code
Mis Algoritmos » Blog Archive » Examen de ensamblador optimizado
2006-11-02 17:54:37
[...] El código anterior fue es un asco jeje, me agarraron en curva, no sabía qué hacer,… Pero bueno, ya no importa, revisando mi anotaciones de Ensamblador y tratando de optimizar un poquito el código logre dejarlo un poco más pequeño en cantidad de líneas, más lógico :-S y documentado jeje (claro que se puede optimizar más, pero aún no se cómo)… [...]
gaby
2006-12-13 04:02:40
esta genial este programa... sabes que a nosotros nos dejaron hacerlo en la escuela pero no habia podido hacerlo.... asi que ya lo copie... gracias... saludos gaby
gaby
2006-12-13 04:05:18
bueno... perdon.. es que yo apenas voy comenzando con el lenguaje ensamblador asi que me es de mucha ayuda... hey si puedes contactame... gabrielacatano@hotmail.com
creo que me ayudarias bastante a aprender a programar.... gracias nuevamente!
Victor
2006-12-13 10:42:07
Gracias Gaby ;-), la única forma en la que podría ayudarte es ofreciendote <a href="http://www.mis-algoritmos.com/foro" rel="nofollow">el foro</a>,... así no perderás la oportunidad de recibir una respuesta.
Carlos
2007-06-05 11:32:53
Oye esta elegante, voy a utilizarlo para un proyecto de la U.
Gracias
PabloMDiez
2007-11-09 08:48:25
Que tal? Y como puede aplicarse esto a la programación para celulares (específicamente para los Sony Ericsson)? Se crear patches básicos, pero los avanzados utilizan assembler y no se nada!! =( Algun curso básico como para aprender algo??
Saludos!
Victor De la Rocha
2007-11-09 08:53:18
No creo que pueda aplicarse a la programación de celulares esto, supongo que para eso hay aplicaciones al estilo de Visual Basic.
Rubén
2007-11-26 18:49:43
Hola Victor amigo buena tus apuntes, te felicito bueno quisiera pedirte un favor para que me autorices el uso de tu código soy principiante estoy llevando un curso "Microprocesadores I", claro que siempre he respetado el Copyrigth del autor bueno bye específicamente pienso usar el "editor basico de texto".
Victor De la Rocha
2007-11-26 18:52:24
Adelante, claro que puedes usarlo ;)
Fern0S
2008-01-08 23:09:17
he ecnontrado un buen tutorial de asm que estoy comenzando a leer. por si a alguien le interesa les dejo el link:
http://todoprogra.com/2007/09/04/tutorial-de-ensamblador-asm-1/
Salu2
Sonia
2009-07-18 18:18:40
Hola, tengo que hacer una práctica en la que tengo que hacer lo que haces tú arriba y además que pulsando el 1 o el 2 cambie la velocidad de movimiento del pixel.
El caso es que al ejecutarlo funciona durante unos segundos y luego se para. No nos han explicado casi nada y no sé que más hacer, mis conocimientos no llegan a tanto. Podrías ayudarme o incluso te puedo recompensar económicamente si me lo consigues sacar. Igual queda un poco mal esto, pero de verdad que ya no sé que más hacer, además solamente me quedan 3 días :S
Bueno, a ver si me dices algo, un saludo!!
Victor De la Rocha
2009-07-20 13:38:32
Sonia, yo dejé de usar ASM hace tiempo. No me creo capaz de hacerlo así nomás por que si jeje... buscate un libro de ensamblador, segúro que así lo logras.
Cuando yo lo usaba, no me dieron las indicaciones, todo lo investigabamos.
Arturo
2010-03-16 14:45:54
Felicidades, en verdad te la rifaste, yo estoy por presentar un examen de ensamblador, y me gustaria saber si tienes algun manual completo de interruppciones del Dos y del Bios que me puedas proporcionar. Te lo agradeceria bastante, puesto que he buscado manuales, pero todos estan incompletos. Aun asi me voy a tomar la libertad de usar tu programa para analizarlo solamente, ya que no se que vaya a venir en mi examen, solo quiero estar preparado para lo que venga.
En fin amigo, ojala puedas mandarme el manual, por favor. de antemano, muchas gracias.
eddy_mlma@hotmail.com