elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Ayuda con este ejercicio
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con este ejercicio  (Leído 3,124 veces)
danielo-

Desconectado Desconectado

Mensajes: 218


:)


Ver Perfil
Ayuda con este ejercicio
« en: 11 Octubre 2010, 01:18 am »

Hola a todos, ya habia querido antes iniciarme en ensamblador, y esta vez me toca a a la fuerza aprender, pues llevo esta materia :s jaja.. como sea, nos han marcado de tarea un pequeño programa que lea del teclado 4 numeros del 1 al 15 y meterlos en una pila, pero en forma de hexadecimal, es decir que yo pueda ingresar 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f y lo unico que tiene que hacer el programa es devolverme el valor real, es decir, si meto a que me devuelva 10, b->11, c->12 y asi sucesivamente.

Se que debería ser sencillo, pero esque no se nada de ensamblador :(, hasta ahorita llevo la entrada y el almacenaje en pila, planeaba que al momento de hacer el pop hiciera la conversion, pero no e podido !  :( :( :( a ver si agluien me ayuda, hasta aorita esto es lo que tengo:

Código
  1. pila segment stack "STACK"
  2. dw 4 DUP(0)
  3. pila ends
  4.  
  5. data segment
  6. data ends
  7.  
  8. code segment
  9.  
  10. assume cs:code,ds:data,ss:pila
  11. inicio:
  12. mov ax, data    ;un db es una palabra de 16 its
  13. mov ds, ax     ;//cargar el segmento de codigo en memoria
  14.  
  15. MOV     AH,01h ;Le meto 1 a ah para que meta en al
  16. INT     21h ;Espera el teclado
  17. mov ah,0h ;limpio ah
  18. push ax ;lo meto en la pila
  19.  
  20. MOV     AH,01h
  21. INT     21h
  22. mov ah,0h
  23. push ax
  24.  
  25. MOV     AH,01h
  26. INT     21h
  27. mov ah,0h
  28. push ax
  29.  
  30. MOV     AH,01h
  31. INT     21h
  32. mov ah,0h
  33. push ax
  34.  
  35. ;lo hice 4 veces, y ahora a hacer el pop
  36. ;POP
  37. pop ax                 ;Y ya no se que mas hacer!
  38. cmp    ax,'a'          ; una comparacion talvez?
  39. jz salt                    ; asi se hace la comparacion?
  40.  
  41. salt proc near        ;pero que  pasa si no es una a?
  42. sub al,31h              ; como ponerle el else ???? (o algo asi)
  43. mov dl,al
  44. mov ah,02h
  45. int 21h
  46. salt endp
  47.  
  48. MOV AX, 4C00h  ;halt    dos dice que es la terminacion del programa
  49. INT 21h  ;;int rebisa lo que esta en 21h.
  50.                 ;es la interrupcion de pantalla con la funcion 4c que es la de hald
  51.  
  52.  
  53. code ends
  54. end inicio
  55. ; que perdido estoy,ayudenme :(
  56.  

EI: juntando mensajes.

Ninguna idea?
Ya estoy cerca de terminar, pero a ver si me resuelven esta duda,
yo realizo una comparacion con cmp, si es igual a la cadena, hago el salto a una etiqueta con el je y si no es igual salto hacia otra etiqueta con el jne, pero ahora, el problema esque como esta una etiqueta detras de otra, pues me hace el proceso seguido, ya se que estoy haciendo algo mal, pues no deberia suceder esto, pero esque no se como indicarle que despues de realizar la etiqueta vuelva a la linea de donde salto  :-\, intente hacerlo con call y proc, pero esque no me deja poner je call procedimiento :S ayuden a este novato porfa


« Última modificación: 11 Octubre 2010, 18:42 pm por Eternal Idol » En línea

Иōҳ


Desconectado Desconectado

Mensajes: 563


Ver Perfil
Re: Ayuda con este ejercicio
« Respuesta #1 en: 11 Octubre 2010, 17:47 pm »

busca en google como hacer la conversion hexadecimal a decimal luego lo adaptas, no es muy dificil.

Y sobre el else

Código:
.IF
.ELSE
.ENDIF
?


En línea

Eres adicto a la Ing. Inversa? -> www.noxsoft.net
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con este ejercicio please
Programación C/C++
ramoncarri 2 2,085 Último mensaje 1 Mayo 2013, 18:59 pm
por durasno
No puedo hacer este ejercicio AYUDA :c!
Ejercicios
darkzono 3 3,719 Último mensaje 16 Septiembre 2014, 03:27 am
por engel lex
Arreglo de suma de hexadecimales (ayuda con este ejercicio)
Java
SYAT19 1 4,667 Último mensaje 17 Mayo 2015, 21:26 pm
por daryo
Ayuda no entiendo este ejercicio...?
Java
Carlosjava 5 2,980 Último mensaje 30 Julio 2015, 05:11 am
por DarK_FirefoX
Ayuda con este ejercicio please
Java
JAZzZ 2 2,669 Último mensaje 8 Agosto 2017, 10:51 am
por Orubatosu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines