• Lunes 18 de Noviembre de 2024, 13:40

Autor Tema:  .... Asesoria Con El Debug  (Leído 8608 veces)

cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
.... Asesoria Con El Debug
« en: Lunes 11 de Septiembre de 2006, 21:45 »
0
Hola chicos, ( espero no interrumpir :) )

es mi PRIMER programa en ensamblador    <_<

-a100
**:0100   jmp125
**:0102   enter
-e102 'TECLEA UN NUMERO DEL  1 AL 5 ' 0D 0A '$'
-a125
**:0125   MOV DX,0125
**:0128   MOV AH.9
**:012A   INT 21
**:012C  CMP AL ,0D
**:102E   JNE 125
**: 0130  MOV AH,2
**: 0132  MOV DL,AL
**:0134  JMP 13A
**:0136
-0136 'esl el numero que introduciste' 0D 0A '$'
-a13A
**:013A INT 20


el resultado fue desastrozo, lo que tiene que hacer es mandar un mensaje de teclear un numero del 1 al 5,,, si es incorrecto mandar mensaje error y salir, y si es un numero dentro del rango mandar mensaje de tecleaste tal numero.




p.d es mi primer programa.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: .... Asesoria Con El Debug
« Respuesta #1 en: Lunes 11 de Septiembre de 2006, 22:43 »
0
Primero que nada no te recomiendo usar el Debug sino un ensamblador de verdad como el MASM.

Ahora al codigo: ¿Donde esta la parte que lee el numero? Hace falta pulir mucho ahi ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: .... Asesoria Con El Debug
« Respuesta #2 en: Lunes 11 de Septiembre de 2006, 23:37 »
0
Ok, esa es mi duda
si es numerico con que puedo leerlo,
para caracter se supone que lo lee con la instruccion mov ah,1, que por cierto la olvide poner en mi post.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: .... Asesoria Con El Debug
« Respuesta #3 en: Martes 12 de Septiembre de 2006, 00:12 »
0
Cita de: "cybergatita"
Ok, esa es mi duda
si es numerico con que puedo leerlo,
para caracter se supone que lo lee con la instruccion mov ah,1, que por cierto la olvide poner en mi post.
Bueno, mira el unico mensaje fijo del foro, arriba de todo con las interrupciones.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: .... Asesoria Con El Debug
« Respuesta #4 en: Martes 12 de Septiembre de 2006, 00:48 »
0
Ah.mmhh

Ok, gracias

Toph

  • Moderador
  • ******
  • Mensajes: 420
  • Nacionalidad: sv
    • Ver Perfil
    • http://www.electronicayotros.blogspot.com/
Re: .... Asesoria Con El Debug
« Respuesta #5 en: Martes 12 de Septiembre de 2006, 20:39 »
0
:) hola viendo tu programa eh visto algunos errores primero inicias saltando a la direccion 125 donde lo que haces es
Citar
**:0125 MOV DX,0125
**:0128 MOV AH.9
**:012A INT 21
con esto quieres sacar una cadena de caracteres pero en DX has puesto 0125 que se supone es el inicio de la cadena de caracteres que quieres sacar y la que quieres sacar esta en la 102 no en la 125
Citar
-e102 'TECLEA UN NUMERO DEL 1 AL 5 ' 0D 0A '$'
luego debe ir la rutina en la que lees el numero tecleado lo puedes hacer de dos formas:

1)
Código: Text
  1. mov ah,01
  2. int 21
  3.  
con esto queda en AL la tecla presionada y se presenta la tecla presionada en pantalla
2)
Código: Text
  1. mov dl,ff
  2. mov ah,06
  3. int 21
  4.  
con esto igual, queda en AL la tecla presionada pero no se muestra en pantalla
luego en la comparacion  haces esto
Citar
**:012C CMP AL ,0D
**:102E JNE 125
aun no se porque, supuestamente tendrias que comparar si el numero esta entre 1 y 5  esto lo puedes hacer de la siguiente forma:

Código: Text
  1. cmp al,31
  2. jl xxx
  3. cmp al,35
  4. jg xxx
  5.  
en xxx tendrias que poner la direccion donde esta la rutina que envia el mensaje de error y sale del programa, aqui lo que haces es preguntarte, primero el numero es menor de 31 osea "1" si es asi entonces salta al error, luego se pregunta si es mayor de 35 osea "5" si es asi salta al error tambien.
abajo de esta comparacion deberia estar la rutina de "tecleaste tal numero "

saludos  :hola:
Por favor leer esto antes de postear. Gracias
NO alimenten al TROLL y morirá
¿Querés ayudar?, pues doná comida gratis con un simple clic aqui ,sin trucos
photobucket , Google , wine y cutepdf Rock!!!


programacion,c,c++,
Microcontroladores,java,linux,videojuegos,
,.NET,asm,codigo
por favor este 2012 que sea

cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: .... Asesoria Con El Debug
« Respuesta #6 en: Miércoles 13 de Septiembre de 2006, 04:03 »
0
Gracias tania_D, Me ah sido de utilidad tu respuesta

cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: .... Asesoria Con El Debug
« Respuesta #7 en: Jueves 14 de Septiembre de 2006, 21:03 »
0
Cheque el enlace siguiente, entre otros manuales de ensamblador:
http://www.ctyme.com/rbrown.htm.
Modifique mi codigo: el cual quedo:
-a100
:0100 JMP 176
:0103
-e102  ‘teclea un numero del 1 al 5’ 0d 0a ‘$’
-e11F  ‘tecleaste el 1’ 0d 0a ‘$’
-e12E  ‘tecleaste el 2’ 0d 0a ‘$’
-e13E  ‘tecleaste el 3’ 0d 0a ‘$’
-e14E  ‘tecleaste el 4’ 0d 0a ‘$’
-e15e   ‘tecleaste el 5’ 0d 0a ‘$’
-e16E   ‘error’ 0d 0a ‘$’
-a176
:176 mov dx,102
:179 mov ah,9
:17B int 21
:17D mov ah,1
:17F int 21
:181 cmp al,31
:183 je 19E
:185 cmp al,32
:187 je 1ª7
:189 CMP al, 33
:18B je 1B0
:18D cmp al,34
:18F je 1B9
:191 cmp al,35
:193 je 1c2
:198 mov dx,16C
:198 mov ah,9
:19A int 21
:19C int 20
:19E mov dx,11F
:1A1 mov ah,9
:1A3 int 21
:1A5  int20
:1A7 mov dx,12C
:1AA mov ah,9
1AC  int 21
1AE int 20
1B0 mov dx,13E
1B3 mov ah,9
1B5 int 21
1B7 int 20
1B9 mov dx,  14E
1B6 mov ah,9
1BE int 21
1C0 int 20
1C2 mov dx,15E
1C5 mov ah,9
1C7 int 21
1C9 int 20
1CB
...Lo estoy probando con Debug bajo, en una ATHLON A 700MHZ con Xp profesional, el resultado es algo parecido a esto:

teclea un numero del 1 al 5

tecleaste el 1
tecleaste el 2
tecleaste el 3
tecleaste el 4
tecleaste el 5
  error


Me aparece todo, tecleo un numero y al parecer hace la comparacion pero sin borrar los mensajes,?

¿Me falta algo? o cometi algun error?


Gracias de antemano

Toph

  • Moderador
  • ******
  • Mensajes: 420
  • Nacionalidad: sv
    • Ver Perfil
    • http://www.electronicayotros.blogspot.com/
Re: .... Asesoria Con El Debug
« Respuesta #8 en: Jueves 14 de Septiembre de 2006, 23:56 »
0
Citar
Me aparece todo, tecleo un numero y al parecer hace la comparacion pero sin borrar los mensajes,?

¿Me falta algo? o cometi algun error?

Hola, si hay un error en tu codigo el problema es el siguiente:
esta aqui:
Código: Text
  1. -e102 ‘teclea un numero del 1 al 5’ 0d 0a ‘$’
  2. -e11F ‘tecleaste el 1’ 0d 0a ‘$’
  3. -e12E ‘tecleaste el 2’ 0d 0a ‘$’
  4. -e13E ‘tecleaste el 3’ 0d 0a ‘$’
  5. -e14E ‘tecleaste el 4’ 0d 0a ‘$’
  6. -e15e ‘tecleaste el 5’ 0d 0a ‘$’
  7. -e16E ‘error’ 0d 0a ‘$’
  8.  
el mensaje inicia en la 102 pero con toda la cadena "teclea un numero del 1 al 5’ 0d 0a ‘$’ " queda el signo de $ (que es el que le dice al programa donde termina la  cadena a mostrar) justo en la posicion 11F, pero tu despues lo borras al introducir la otra cadena ya que la introduces justo a partir de la 11F, con las otras cadenas haces lo mismo sigues borrando los signos $ porque desde esa direccion inicias la siguiente cadena y asi por lo que el programa toma el unico $ que no borras o sea el que esta en la cadena error como el final del mensaje por eso te muestra todo.
checa bien que haya espacion entre los mensajes para que no se superpongan entre ellos

saludos  :hola:
Por favor leer esto antes de postear. Gracias
NO alimenten al TROLL y morirá
¿Querés ayudar?, pues doná comida gratis con un simple clic aqui ,sin trucos
photobucket , Google , wine y cutepdf Rock!!!


programacion,c,c++,
Microcontroladores,java,linux,videojuegos,
,.NET,asm,codigo
por favor este 2012 que sea

cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: .... Asesoria Con El Debug
« Respuesta #9 en: Viernes 15 de Septiembre de 2006, 01:35 »
0
Checando lo que me comentaste Tania_ sobre los espacios,  cheque lo siguiente:
por ejemplo en:

-e102 ‘teclea un numero del 1 al 5’ 0d 0a ‘$’
-e11F ‘tecleaste el 1’ 0d 0a ‘$’


La direccion 11F salio de 102 mas 28, que 28 es el total de la cadena que contiene la direccion 102, de hecho son 27, la suma de estos me dio 11D y puse aun  mas 11F, por aquello de lo mismo que me comentas.

¿ O bien que espacio seria recomendable?



Gracias Tania por tus respuestas.

geobeid

  • Miembro activo
  • **
  • Mensajes: 88
    • Ver Perfil
Re: .... Asesoria Con El Debug
« Respuesta #10 en: Viernes 15 de Septiembre de 2006, 05:27 »
0
recomendacion por experiencia:

separa las cadenas con espacios de mas total unos bites mas o unos menos no creo que varie el tamaño en clusters del ejecutable y te ahorras estar calculando que entren las cadenas en el espacio que le dejaste jeje bytes  :kicking:
[size=109]
SI QUERES ENCONTRAR A JESÚS GOOGLEALO
[/size]

cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: .... Asesoria Con El Debug
« Respuesta #11 en: Sábado 16 de Septiembre de 2006, 00:38 »
0
recomendacion por experiencia:

separa las cadenas con espacios de mas total unos bites mas o unos menos no creo que varie el tamaño en clusters del ejecutable y te ahorras estar calculando que entren las cadenas en el espacio que le dejaste jeje bytes kicking.gif
*/


De hecho lo tenia con mas bytes, pero lo deje como lo postie por que me mandaba un error, no se si haya algo en que tenga que ver que lo estoy guardando como .COM (olvide mencionarles el detalle)

Toph

  • Moderador
  • ******
  • Mensajes: 420
  • Nacionalidad: sv
    • Ver Perfil
    • http://www.electronicayotros.blogspot.com/
Re: .... Asesoria Con El Debug
« Respuesta #12 en: Sábado 16 de Septiembre de 2006, 01:18 »
0
Citar
Checando lo que me comentaste Tania_ sobre los espacios, cheque lo siguiente:
por ejemplo en:

-e102 ‘teclea un numero del 1 al 5’ 0d 0a ‘$’
-e11F ‘tecleaste el 1’ 0d 0a ‘$’


La direccion 11F salio de 102 mas 28, que 28 es el total de la cadena que contiene la direccion 102, de hecho son 27, la suma de estos me dio 11D y puse aun mas 11F, por aquello de lo mismo que me comentas.

¿ O bien que espacio seria recomendable?

No cybergatita  :) hay algo que no consideras a la hora de hacer tu calculo porque el signo de $ queda justo en la 11F si no me crees introducela la cadena y luego dale el comando
-d 102 y veras como queda checa la imagen que te adjunto.

Citar
De hecho lo tenia con mas bytes, pero lo deje como lo postie por que me mandaba un error, no se si haya algo en que tenga que ver que lo estoy guardando como .COM (olvide mencionarles el detalle)

que extraño que te halla mandado un error no tendria porque  :huh:

saludos  :hola:
Por favor leer esto antes de postear. Gracias
NO alimenten al TROLL y morirá
¿Querés ayudar?, pues doná comida gratis con un simple clic aqui ,sin trucos
photobucket , Google , wine y cutepdf Rock!!!


programacion,c,c++,
Microcontroladores,java,linux,videojuegos,
,.NET,asm,codigo
por favor este 2012 que sea

cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: .... Asesoria Con El Debug
« Respuesta #13 en: Sábado 16 de Septiembre de 2006, 01:38 »
0
Tienes razon tania.

Ya estoy en la modificacion con tus recomendaciones!!...



Ojala y ya quede!!

cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: .... Asesoria Con El Debug
« Respuesta #14 en: Sábado 16 de Septiembre de 2006, 01:53 »
0
Decidi acortar las cadenas (espero haya pensando bien:) )

-e102 ‘teclea  numero del 1 al 5’ 0d 0a ‘$’
-e11F ‘Fue el 1’ 0d 0a ‘$’
-e12E ‘Fue el 2’ 0d 0a ‘$’
-e13E ‘Fue el 3’ 0d 0a ‘$’
-e14E ‘Fue el 4’ 0d 0a ‘$’
-e15e ‘Fue el 5’ 0d 0a ‘$’
-e16E ‘error’ 0d 0a ‘$’

el resultado fue que me aparece primero la cadena que me pide numero
y al presionar un numero, lo adjunto en la imagen.


Gracias por tu tiempo Tania_d
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

Toph

  • Moderador
  • ******
  • Mensajes: 420
  • Nacionalidad: sv
    • Ver Perfil
    • http://www.electronicayotros.blogspot.com/
Re: .... Asesoria Con El Debug
« Respuesta #15 en: Sábado 16 de Septiembre de 2006, 02:40 »
0
:huh: que extraño hice la prueba con el siguiente codigo solo tomando (el uno y el dos)
Código: Text
  1. -a100
  2. :0100 JMP 176
  3. :0103
  4. -e102 ‘teclea numero del 1 al 5’ 0d 0a ‘$’
  5. -e11F ‘Fue el 1’ 0d 0a ‘$’
  6. -e12E ‘Fue el 2’ 0d 0a ‘$’
  7. -a176
  8. :176 mov dx,102
  9. :179 mov ah,9
  10. :17B int 21
  11. :17D mov ah,1
  12. :17F int 21
  13. :181 cmp al,31
  14. :183 je 19E
  15. :185 cmp al,32
  16. :187 je 1a7
  17. :189 int 20
  18. -a19E
  19. 19E mov dx,11F
  20. :1A1 mov ah,9
  21. :1A3 int 21
  22. :1A5 int20
  23. :1A7 mov dx,12E 'esto es lo unico diferente en tu programa estaba 12C
  24. :1AA mov ah,9
  25. 1AC int 21
  26. 1AE int 20
  27.  

obtuve excelentes resultados observa la imagen adjunta, cuando introduzcas las cadenas verifica con el comando -d 100 para que veas que los signos de $ no se borran.

 :unsure: no tendria que haber error cierra la ventana y vuelvela abrir talvez quedan datos almacenados usa los comandos -d 100 para ver las cadenas y -u 100 para ver el programa
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
Por favor leer esto antes de postear. Gracias
NO alimenten al TROLL y morirá
¿Querés ayudar?, pues doná comida gratis con un simple clic aqui ,sin trucos
photobucket , Google , wine y cutepdf Rock!!!


programacion,c,c++,
Microcontroladores,java,linux,videojuegos,
,.NET,asm,codigo
por favor este 2012 que sea

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: .... Asesoria Con El Debug
« Respuesta #16 en: Sábado 16 de Septiembre de 2006, 05:14 »
0
:P  :P  :P  :P


Yo tampoco te recomendaria utilizar el debug para ensamblar es mas facil con masm y ademàs tarde o temprano tendras que migrar a usar uno de estos ensambladores...
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: .... Asesoria Con El Debug
« Respuesta #17 en: Sábado 16 de Septiembre de 2006, 07:08 »
0
Ok tania, deja lo checo de la forma que me comentas.
Bicholey, pues a mi me gustaria utilizar otra cosa que no sea debug,,, mmhh pero pues creo que por algo empezamos todos, no

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: .... Asesoria Con El Debug
« Respuesta #18 en: Sábado 16 de Septiembre de 2006, 07:13 »
0
:P  :P  :P  :P  :P


Pues teneis razon de que todos empezamos con algo pero por ejemplo el masm32 es muy parecido al debug, pero bueno ojala todo salga bien...
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: .... Asesoria Con El Debug
« Respuesta #19 en: Sábado 16 de Septiembre de 2006, 08:14 »
0
Cita de: "cybergatita"
Ok tania, deja lo checo de la forma que me comentas.
Bicholey, pues a mi me gustaria utilizar otra cosa que no sea debug,,, mmhh pero pues creo que por algo empezamos todos, no
Yo por suerte no empece con el Debug ... es una incomodidad total y no es lo logico. Justamente el Debug es un depurador, su cometido es ese y no probar programas.

Por algo tenes que estar usando todo el tiempo comandos del depurador que no tienen nada que ver con assembly (a y e).

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: .... Asesoria Con El Debug
« Respuesta #20 en: Sábado 16 de Septiembre de 2006, 22:09 »
0
Pues reinicie mi equipo y me hiso lo mismo, lo volvere a teclear por si cometi algun error al momento de teclearlo....


Y bueno espero ya para el siguiente siglo empezar con masm32, pues no se la razon por que el profesor nos empezo asi,

ustedes que opinan?



y gracias a todos por sus respuestas eh aprendido mucho.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: .... Asesoria Con El Debug
« Respuesta #21 en: Sábado 16 de Septiembre de 2006, 22:34 »
0
La razon puede ser la simplicidad: Debug.exe esta presente en cualquier instalacion de Windows.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Toph

  • Moderador
  • ******
  • Mensajes: 420
  • Nacionalidad: sv
    • Ver Perfil
    • http://www.electronicayotros.blogspot.com/
Re: .... Asesoria Con El Debug
« Respuesta #22 en: Sábado 16 de Septiembre de 2006, 22:44 »
0
Citar
 
Pues reinicie mi equipo y me hiso lo mismo, lo volvere a teclear por si cometi algun error al momento de teclearlo....

seguramente es por algun error al introducirlo, ya lo probe completo y me funciona perfectamente  :comp:

Citar
pues no se la razon por que el profesor nos empezo asi,

ustedes que opinan?

con el debug puedes estar viendo posiciones de memoria, que hay en los registros, ejecutar el programa paso a paso y ver que cambia, etc eso es importante cuando estas aprendiendo, por eso es que los profesores cuando estamos iniciando nos ponen en el debug , ademas para digitar y ejecutar un programa solo requiere cargar el debug en cambio al usar el MASM necesitas un editor de texto, el ensamblador en si mismo, un programa llamado LINK, en fin.
sin embargo es mil veces mejor el MASM  :D  claro esta, eso de introducir el programa en un editor de texto es muchiiisimo mejor que con el debug, puedes usar etiquetas (en tu caso no tendrias que preocuparte por lo de las direcciones  <_< ), cuando un programa es largo el debug es una pesadilla  :o
pero si asi lo quieren los profesores ni modo a hacerlo en debug  :P
Por favor leer esto antes de postear. Gracias
NO alimenten al TROLL y morirá
¿Querés ayudar?, pues doná comida gratis con un simple clic aqui ,sin trucos
photobucket , Google , wine y cutepdf Rock!!!


programacion,c,c++,
Microcontroladores,java,linux,videojuegos,
,.NET,asm,codigo
por favor este 2012 que sea

y0mism0

  • Miembro activo
  • **
  • Mensajes: 31
    • Ver Perfil
Re: .... Asesoria Con El Debug
« Respuesta #23 en: Domingo 17 de Septiembre de 2006, 02:40 »
0
Yo tambien empece con el Debug, aunque dure 2 dias y me pase al Masm, y no me arrepiento...

cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: .... Asesoria Con El Debug
« Respuesta #24 en: Domingo 17 de Septiembre de 2006, 17:36 »
0
:P  :D  :smartass:

Tania ya quedo perfectamente!!,,,, nuevamente gracias por tu tiempo y ayuda, y en general a todos los que respondieron a este tema   :D



p.d ahh y seguire por aqui:)