Test Foro de elhacker.net SMF 2.1

Programación => Programación General => 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 (asm) [Seleccionar]

# COMPILAR
# as -o macros.o macros.s
# ls -o macros macros.o

.macro terminar
movl $1,%eax
movl $0,%ebx
int $0x80
.endm

# espera ECX=cadena ; EDX=longuitud
.macro escribir_cadena cadena longuitud
movl $4,%eax
movl $1,$ebx
movl \cadena,%ecx
movl \longuitud,%edx
int $0x80
.endm

# espera ECX=cadena ; EDX=longuitud
.macro leer_cadena cadena longuitud
movl $3,%eax
movl $0,%ebx
movl \cadena,%ecx
movl \longuitud,%edx
int 0x80
.endm


.section .data
retorno: .byte 0x0A
mensaje1: .ascii "\nIntroduce una cadena: "
longuitud1 = . - mensaje1
buffer: .ascii "           "


.section .text
.globl _start

_start:
escribir_cadena $mensaje1 $longuitud1
leer_cadena $buffer $10

escribir_cadena $retorno $1
escribir_cadena $buffer $10

escribir_cadena $retorno $1
terminar
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