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

 

 


Tema destacado: Introducción a Git (Primera Parte)


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


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Problema en ASM (IBM y compatibles)
« en: 9 Octubre 2009, 20:52 pm »

Hola que tal estan?

Miren estoi leyendo un libro de ensamblador de 16 bits,para aprender un poco e introducimr en este "lenguaje",el caso es que e llegado a un apartado en donde se da la equivalencia de las instrucciones PUSH y POP,la de guardar valores en la pila i la de recuperarlos,pues me dan este codigo:

Push AX equivale a:

Código:
SUB SP,2
MOV [SP],AX


Creo que era asin,y la del POP me la pone aisn:
Código:
MOV AX,[SP]
ADD SP,2



Creo que era asin,el caso es que si yo ago el equivalente a push despues con la instruccion POP BX (o cualquier otro registro) por ejemplo POP BX en BX se debera agregar el valor que e guardado con el codigo primero no? por k sesupone que es equivalente a PUSH,y otra cosa yo compilo con el TASM y TLINK,i no me daj poner:
Código:
MOV AX,[SP]

pero si lo ago sin corchetes:
Código:

MOV AX,SP

entonces si que me deja,es lo mismo sin corchetes que con corchetes,creo que no no? por que no me deja con corchetes?



ayuda porfa :(


salu2




En línea

YST


Desconectado Desconectado

Mensajes: 965


I'm you


Ver Perfil WWW
Re: Problema en ASM (IBM y compatibles)
« Respuesta #1 en: 10 Octubre 2009, 21:36 pm »

Mas rato me bajo el TASM y lo veo ;) Por mientras puedes usar esto
Código
  1. mov bp,sp
  2. mov ax,[bp]
  3.  


« Última modificación: 11 Octubre 2009, 18:34 pm por YST » En línea



Yo le enseñe a Kayser a usar objetos en ASM
Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Re: Problema en ASM (IBM y compatibles)
« Respuesta #2 en: 11 Octubre 2009, 17:38 pm »

Hola yst,gracias por responer,si no me equivoco este codigo que me as pasado seria el equivalente a la instruccion POP no? corrigeme si me equivoco porfavor,lo e probado i no me da ingun error parece que funciona,pero me surge una duda que aún no se resolver,como puedo mostrar por pantalla el valor actual de un registro? igual que podemos mostrar caracteres direccionando el segmento de datos,pues como ago para poder mostrar valores de los registros por pantalla?


salu2
En línea

YST


Desconectado Desconectado

Mensajes: 965


I'm you


Ver Perfil WWW
Re: Problema en ASM (IBM y compatibles)
« Respuesta #3 en: 11 Octubre 2009, 18:29 pm »

No , no es como el pop AX le faltaria agregar una suma de 2 a SP :P

Lo de mostrar el valor actual en pantalla te hace faltaria pasar de "integer" a "string" ;)
En línea



Yo le enseñe a Kayser a usar objetos en ASM
Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Re: Problema en ASM (IBM y compatibles)
« Respuesta #4 en: 11 Octubre 2009, 18:39 pm »

COMO CONVIERTO LOS TIPOS STRING A INTEGER?


es verdad me faltaria incrementar SP

saludos
En línea

YST


Desconectado Desconectado

Mensajes: 965


I'm you


Ver Perfil WWW
Re: Problema en ASM (IBM y compatibles)
« Respuesta #5 en: 11 Octubre 2009, 22:49 pm »

COMO CONVIERTO LOS TIPOS STRING A INTEGER?


es verdad me faltaria incrementar SP

saludos

Para pasar el numero a ascii te tendrias que hacer una funcion que lo hiciera ;)

PD: Lo de interger a string es solo una manera de decirlo ya que en ASM no existen :P


EDIT :

El codigo quedaria algo a si
Código
  1. org 100h
  2.  
  3. mov dx,8
  4.  
  5. call WordToString
  6. mov ah,09
  7. mov dx,lb2
  8. int 21h
  9. int 20h
  10. ContarCantidad:
  11. mov di,ax
  12. mov si,0
  13. .bucle:
  14. xor dx,dx
  15. mov bx,10
  16. div bx
  17.  
  18. inc si
  19. cmp ax,0
  20. jne .bucle
  21. ;dec si
  22. ret
  23.  
  24.  
  25. ;Le pasas el word por DX ;)
  26. WordToString:
  27. cmp dx,10
  28. jle .UnoSolo
  29. push dx
  30. mov ax,dx
  31. call ContarCantidad
  32. pop dx
  33. mov cx,-1
  34. mov word[Cantidad],si
  35. sub [Cantidad],2
  36. .bucle:
  37. push dx
  38. dec si
  39. inc cx
  40.  
  41. mov bx,1
  42. mov dx,si
  43. .Elevar:
  44. dec dx
  45. imul bx,10
  46. cmp dx,0
  47. jne .Elevar
  48. pop dx
  49. push dx
  50. mov ax,dx
  51. xor dx,dx
  52. div bx
  53. pop dx
  54. mov di,lb2
  55. add di,cx
  56. mov byte[di],al
  57. add  byte[di],'0'
  58. imul ax,bx
  59. sub dx,ax
  60.  
  61.  
  62. cmp [Cantidad],cx
  63. jne .bucle
  64. add dl ,'0'
  65. mov di,lb2
  66. add di,cx
  67. mov byte[di+1],dl
  68. .salir:
  69. ret
  70. .UnoSolo:
  71. mov di,lb2
  72. add dl,'0'
  73. mov byte[di],dl
  74. jmp .salir
  75. Cantidad dw ?
  76. lb2 db 200 dup ('$')
  77.  
  78.  
« Última modificación: 11 Octubre 2009, 23:59 pm por YST » En línea



Yo le enseñe a Kayser a usar objetos en ASM
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿ Son compatibles ?
Hardware
Root~ 8 3,909 Último mensaje 9 Diciembre 2012, 19:26 pm
por Root~
problema con Airodump no responde y CommViewWiFi son compatibles
Wireless en Windows
netbios_hack1111111j 0 2,302 Último mensaje 11 Diciembre 2012, 12:45 pm
por netbios_hack1111111j
Routers compatibles con Openflow
Redes
MPLS 0 1,636 Último mensaje 5 Febrero 2018, 15:09 pm
por MPLS
Procesadores Compatibles « 1 2 »
Hardware
B€T€B€ 12 10,252 Último mensaje 9 Junio 2022, 23:36 pm
por AC1
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines