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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


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

Desconectado Desconectado

Mensajes: 33



Ver Perfil
ASM INLINE
« en: 12 Mayo 2012, 12:40 pm »

Hola a todos
estoy intentando insertar variables en asm inline gcc en windows tengo este code;

Código
  1. asm(
  2.   ".intel_syntax noprefix;"
  3.   "mov eax, dword ptr args;"
  4.   "add eax, temp;"
  5.   "push [eax];"
  6. );
  7.  

pero en las variables  "args" y "temp" el compilador me dice undefined reference to .... las variables estan declaradas y tal solo que no se como insertar variables en asm inline de gcc

uso: gcc -masm=intel code.c -o app.exe

...

gracias!


En línea

_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: ASM INLINE
« Respuesta #1 en: 12 Mayo 2012, 15:09 pm »

Podrias intentar compilar un programa de C, donde utilices los parametros de la ejecutable "args" a ver como los llama al depurar la aplicacion.

Luego, para "temp" tiene que estar declarada antes. Con asm inline no creo que puedas definir variables ya que no estarias accediento a la sección de datos.
Código:

int temp;
__asm{
mov temp, eax
}

Saludos


En línea

HaX991

Desconectado Desconectado

Mensajes: 33



Ver Perfil
Re: ASM INLINE
« Respuesta #2 en: 13 Mayo 2012, 13:43 pm »

sabrias como pasar asm de sintaxis intel a at&t?
es lo que necesito para meter codigo asm inline en gcc para windows
tengo esto

intento traducir esto, el de arriba es codigo intel y el otro at&t pero se que esta mal el mio

Código
  1. asm
  2. {
  3. mov  eax, dword ptr args
  4. add  eax, temp
  5. push [eax]
  6. }
  7.  
  8.  
  9.  
  10. __asm__(
  11. "movl $args, %eax #;"
  12. "addl $temp, %eax;"
  13. "push (%eax);"
  14. );
  15.  

en este ejemplo de at&t si sirve necesito pasar el puntero de esa forma pero no logro hacerlo

Código
  1. #include <stdio.h>
  2.  
  3. int main() {
  4. int temp = 4;
  5. int temp2 = 5;
  6. int total = 0;
  7.  
  8. __asm__ __volatile__("movl %1, %0;"
  9.   "addl %2, %0;"
  10.   : "=r" (total)
  11.   : "r" (temp), "r" (temp2)
  12.   : "0");
  13.  
  14.  printf("temp: %i, temp2: %i - total: %i\n", temp, temp2, total);
  15.          return 0;
  16. }
  17.  

gracias, saludos!
« Última modificación: 13 Mayo 2012, 13:46 pm por HaX991 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[?] funciones inline y returns
Programación C/C++
oxydec 1 3,705 Último mensaje 8 Abril 2011, 08:45 am
por Akai
Alguien me enseña Asm inline :)
Programación Visual Basic
x64core 9 5,772 Último mensaje 20 Noviembre 2011, 09:52 am
por Karcrack
[VB+ASM][SRC] PUTMEMx - PUTMEM1,2,4,8,... [ASM inline]
Programación Visual Basic
x64core 2 2,636 Último mensaje 10 Diciembre 2011, 23:45 pm
por x64core
ASM INLINE GCC
Programación C/C++
HaX991 0 1,902 Último mensaje 11 Mayo 2012, 19:50 pm
por HaX991
¿Son las funciones inline, inline todo el tiempo?
Programación General
Usuario887 2 3,128 Último mensaje 1 Noviembre 2021, 17:46 pm
por Usuario887
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines