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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


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


Desconectado Desconectado

Mensajes: 994


Ver Perfil
[Duda] Registros
« en: 25 Octubre 2012, 17:24 pm »

Hola

Estoy dando mis primeros pasos con ASM, y me ha surgido este problema.

Código
  1. .section .data
  2.  
  3. msg:
  4.  
  5. .ascii "KPID\n"
  6.  
  7. .section .text
  8.  
  9. .globl _start
  10.  
  11. _start:
  12.  
  13. movl $4, %eAX
  14. movl $1, %eBX
  15. movl $msg, %eCX
  16. movl $5, %eDX
  17.  
  18. int $0x80
  19.  
  20. movl $37, %eAX
  21. movl $1375, %eBX
  22. movl $9, %eCX
  23.  
  24. int $0x80
  25.  
  26. xorl %eAX, %eAX
  27.  
  28. movl $1, %eAX
  29. movl $0, %eBX
  30.  
  31. int $0x80

Este código lo escribo y ejecutó en una máquina de 32 bits, cuando lo paso a la mía que es de 64 bits.

El resultado es esté:
Código:
Bad system call (core dumped)

Leyendo documentación:

Citar
rdi - used to pass 1st argument to functions
rsi - used to pass 2nd argument to functions
rdx - used to pass 3rd argument to functions
rcx - used to pass 4th argument to functions
r8 - used to pass 5th argument to functions
r9 - used to pass 6th argument to functions

Dejo el código así:

Código
  1. .section .data
  2.  
  3. msg:
  4.  
  5. .ascii "KPID\n"
  6.  
  7. .section .text
  8.  
  9. .globl _start
  10.  
  11. _start:
  12.  
  13. movq $4, %rAX
  14. movq $1, %rDI
  15. movq $msg, %rSI
  16. movq $5, %rDX
  17.  
  18. int $0x80
  19.  
  20. movq $37, %rAX
  21. movq $1375, %rDI
  22. movq $9, %rSI
  23.  
  24. int $0x80
  25.  
  26. xorq %rAX, %rAX
  27. movq $1, %rAX
  28. movq $0, %rBX
  29.  
  30. int $0x80

La llamada a write funciona, pero a la de kill no, me apaga el sistema.

Utilice otras llamadas simples como mkdir o rmdir, y ninguna funciona en 64 bits pero si en 32 bits.

¿Son los registros o el sistema?

Utilizo OpenBSD.

Un saludo.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda con relacionar registros
PHP
Maties 360 4 1,290 Último mensaje 15 Agosto 2007, 14:40 pm
por yeikos
pagina De registros Duda
PHP
LogMare 3 1,243 Último mensaje 27 Junio 2008, 05:03 am
por LogMare
Otra duda con registros... « 1 2 »
Programación Visual Basic
ToNy_EsP 15 3,307 Último mensaje 5 Junio 2009, 15:09 pm
por 43H4FH44H45H4CH49H56H45H
Duda sobre registros en C++
Programación C/C++
seryioo 1 848 Último mensaje 7 Septiembre 2015, 16:51 pm
por ivancea96
Duda sobre registros de IP en paginas web
Dudas Generales
PaulHenry 4 1,992 Último mensaje 18 Julio 2016, 09:42 am
por Orubatosu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines