Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: 0and6 en 2 Junio 2017, 21:00 pm



Título: Duda usando macros en GAS
Publicado por: 0and6 en 2 Junio 2017, 21:00 pm
Hola, buen dia estoy aprendiendo a usar las macros en ensamblador, utilizo en compilador GAS, en su version 2.26.1, encontre un ejemplo el caso es que no me lo convierte en codigo fuente, me aparecen los mensajes
Error: unsoported instrucction 'mov'
en las lineas donde mando a llamar a las macros
escribir_cadena  $mensaje1  $longuitud1

He buscado otros ejemplos y al parecer estoy bien, pero a mi no me sale
Les anexo el codigo

Código
  1. # COMPILAR
  2. # as -o macros.o macros.s
  3. # ls -o macros macros.o
  4.  
  5. .macro terminar
  6. movl $1,%eax
  7. movl $0,%ebx
  8. int $0x80
  9. .endm
  10.  
  11. # espera ECX=cadena ; EDX=longuitud
  12. .macro escribir_cadena cadena longuitud
  13. movl $4,%eax
  14. movl $1,$ebx
  15. movl \cadena,%ecx
  16. movl \longuitud,%edx
  17. int $0x80
  18. .endm
  19.  
  20. # espera ECX=cadena ; EDX=longuitud
  21. .macro leer_cadena cadena longuitud
  22. movl $3,%eax
  23. movl $0,%ebx
  24. movl \cadena,%ecx
  25. movl \longuitud,%edx
  26. int 0x80
  27. .endm
  28.  
  29.  
  30. .section .data
  31. retorno: .byte 0x0A
  32. mensaje1: .ascii "\nIntroduce una cadena: "
  33. longuitud1 = . - mensaje1
  34. buffer: .ascii "           "
  35.  
  36.  
  37. .section .text
  38. .globl _start
  39.  
  40. _start:
  41. escribir_cadena $mensaje1 $longuitud1
  42. leer_cadena $buffer $10
  43.  
  44. escribir_cadena $retorno $1
  45. escribir_cadena $buffer $10
  46.  
  47. escribir_cadena $retorno $1
  48. terminar
  49.  


Título: Re: Duda usando macros en GAS
Publicado por: ivancea96 en 3 Julio 2017, 23:49 pm
El error es la llamada en sí o una instrucción dentro del macro? Verifícalo (puedes comentar todas las instrucciones del amcro a ver si sigue dando el problema?
De ser una instrucción, averigua exactamente cual.


PD: longitud es sin 'u' entre la g y la i :o