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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  ejecutable funciona en 1 particion pero en otra no
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ejecutable funciona en 1 particion pero en otra no  (Leído 2,085 veces)
xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
ejecutable funciona en 1 particion pero en otra no
« en: 7 Septiembre 2012, 21:53 pm »

buenas a todos,

hace 3 o 4 dias empece con ASM, y la verdad es que de momento solo ha servido para que le tenga una rabia increible a mac... xD

pero bueno al tema, he copiado directamente un programa de una web:
http://fabiensanglard.net/macosxassembly/index.php

el cual es este:
Código
  1. .bss
  2. .data
  3. output:
  4. .asciz "The processor Vendor ID is '%s' \n"
  5. .lcomm buffer, 13
  6.  
  7. .text
  8. .globl _main
  9.  
  10. _main:
  11.  
  12. movl $0, %eax # define cpuid output option
  13. cpuid
  14.  
  15. movl $buffer, %edi # put values in string
  16. movl %ebx, 0(%edi)
  17. movl %edx, 4(%edi)
  18. movl %ecx, 8(%edi)
  19. movl $0, %ecx
  20. movl %ecx, 12(%edi)
  21.  
  22. # Now Calling printf
  23.  
  24. subl $0x4, %esp #padding stack :/ !
  25. pushl $buffer
  26. pushl $output
  27.  
  28. call _printf #macosx need libc  pre_
  29.  
  30. # ESP is at 0xXXXXXXX0 now,
  31. # with MacOS X Special stub it will be at 0xXXXXXXXC
  32. call _exit
  33. nop

el codigo lo he compilado de la siguiente manera (tambien especial para mac...):
Código:
as -arch i386 -o cpuid.o cpuid.s
ld -e _main -o cpuid -lc cpuid.o

y el problema viene a que, si lo ejecuto en la particion donde esta el sistema, el programa funciona correctamente. pero si lo ejecuto en una particion que tengo para mis cosas, el programa da segmentation fault.

en cambio, si compilo el codigo con:
Código:
gcc -arch i386 -o cpuid cpuid.s
el programa funciona en los dos sitios.

alguien sabe a que puede deberse? despues de buscar todas (creo y espero) las diferencias entre el asm de mac y cualquier otro sistema me gustaria al menos rematar la faena y saber por que esto no funciona. si podeis pasarme algun link que hable sobre ello ya estaria mas que satisfecho, ya que directamente no se ni como buscarlo.

un saludo y muchas gracias!


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines