elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
25 Mayo 2012, 02:32  


Tema destacado: Suscripción al boletín mensual de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  [SOLUCIONADO]Problema con sufijos en ASM de AT&T
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO]Problema con sufijos en ASM de AT&T  (Leído 1,322 veces)
BioHazardTM

Desconectado Desconectado

Mensajes: 8



Ver Perfil
[SOLUCIONADO]Problema con sufijos en ASM de AT&T
« en: 20 Diciembre 2011, 13:46 »

Hola buenas, tengo un problema al ensamblar un programa escrito en ensamblador con sintaxis de AT&T en un ordenador Linux de 64 bits.
El problema es que al ensamblar con:
Código
gcc -nostartfiles -g -o power power.s

Me da estos errores:
Código:
power.s: Assembler messages:
power.s:10: Error: operand type mismatch for `push'
power.s:17: Error: operand type mismatch for `pop'
power.s:24: Error: operand type mismatch for `push'
power.s:45: Error: operand type mismatch for `pop'

Si pongo pushb, pushw, pushl o pushq no se soluciona el problema.
A ver si me podéis ayudar.


Este es mi programa fuente:
Código
	.section .data
.section .text
.globl _start
_start:
push $3
push $2
call power
add $8, %esp
 
push %eax
 
push $2
push $5
call power
add $8, %esp
 
pop %ebx
add %eax, %ebx
mov $1, %eax
int $0x80
 
.type power, @function
power:
push %ebp
mov %esp, %ebp
sub $4, %esp
 
mov 8(%ebp), %ebx
mov 12(%ebp), %ecx
 
mov %ebx, -4(%ebp)
 
power_loop_start:
cmp $1, %ecx
je end_power
mov -4(%ebp), %eax
imul %ebx, %eax
mov %eax,-4(%ebp)
dec %ecx
jmp power_loop_start
 
end_power:
mov -4(%ebp), %eax
mov %ebp, %esp
pop %ebp
ret
 


« Última modificación: 20 Diciembre 2011, 15:21 por BioHazardTM » En línea
Eternal Idol
Moderador
***
Desconectado Desconectado

Mensajes: 4.388


Clarin miente, TN opera y los giles regurgitan.


Ver Perfil WWW
Re: Problema con sufijos en ASM de AT&T
« Respuesta #1 en: 20 Diciembre 2011, 14:14 »

Estas trabajando con los registros de 32 bits (eax vs rax, etc.) y usando la convencion de llamada x86 ...

http://en.wikipedia.org/wiki/Stdcall#System_V_AMD64_ABI_convention

Tal vez estas buscando esto:
http://code.google.com/p/ass-ground-up/source/browse/assembly/power.s?spec=svnf0f0de9b6a6e9a69a98afd87f0fe3e82960f5361&r=f0f0de9b6a6e9a69a98afd87f0fe3e82960f5361


En línea



La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
BioHazardTM

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Re: Problema con sufijos en ASM de AT&T
« Respuesta #2 en: 20 Diciembre 2011, 15:08 »

Gracias por responder Eternal Idol, al final lo he solucionado ensamblando y linkeando por separado para una máquina de 32 bits que es como he aprendido a programar.

Código
as --32 -o power.o power.s
ld -m elf_i386 -o power power.o
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[solucionado] Problema Con Dvd [solucionado]
Hardware
page777 5 881 Último mensaje 6 Agosto 2007, 17:43
por churdano
Problema con chipset Atheros (solucionado, continuamos) Nuevo problema
Wireless en Windows
Torpedool 6 4,121 Último mensaje 11 Julio 2009, 10:45
por KARR
programa de sufijos en C puro
Programación C/C++
mapers 2 2,540 Último mensaje 24 Enero 2010, 22:51
por mapers
[solucionado] problema css y php « 1 2 »
PHP
viher 19 2,804 Último mensaje 10 Octubre 2010, 23:39
por bizco
[Solucionado] Problema con el GDB
Programación General
Shut 0 641 Último mensaje 7 Febrero 2011, 18:35
por Shut
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines