es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Reemplazos de llamadas al sistema en un archivo de ensamblador en Visual Studio

En algunos blogs en línea leí que puedes usar int 2Eh o sysenter en lugar de syscall en un archivo asm. Así que probé ambas opciones, pero no funcionan para ejecutar el programa. Con int 2Eh, compila pero el programa no se ejecuta y no hace lo que debería hacer (lo hace si uso “syscall” en su lugar). Y con sysenter, ni siquiera compila porque el compilador no reconoce la palabra syscall.

Estoy usando la última versión de Visual Studio y mi proyecto es un archivo exe de 64 bits. ¿Alguien tiene ideas de qué puedo intentar?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando reemplazar la instrucción “syscall” en tu código ASM de x86 con “int 2Eh” o “sysenter”. Sin embargo, estás experimentando algunos problemas al compilar y ejecutar tu programa con estas alternativas.

    En primer lugar, según la documentación, “int 2Eh” debería funcionar como una alternativa a “syscall” para Windows de 64 bits. Es posible que haya un problema con tu código o configuración que esté causando que no funcione.

    Respecto a la alternativa “sysenter”, parece que tu compilador no reconoce la palabra “syscall”. Esto se debe a que “sysenter” es una instrucción utilizada por los procesadores Intel y puede que no funcione en todos los sistemas.

    Para solucionar estos problemas, podrías intentar lo siguiente:

    • Revisar tu código para asegurarte de que estás utilizando la sintaxis correcta y que no hay errores que puedan estar causando el problema.
    • Verificar que tu configuración sea correcta, incluyendo asegurarte de que estás utilizando la versión correcta de Visual Studio y que tu proyecto esté configurado correctamente.
    • Intentar comunicarte con otros expertos o foros para ver si han experimentado problemas similares y cómo los resolvieron.
    • Experimentar con otras alternativas, como utilizar llamadas directas al sistema a través de la API de Windows o utilizar otro ensamblador.

    En última instancia, requerirá un poco de experimentación y solución de problemas para determinar la causa raíz del problema y encontrar una solución que funcione para tu configuración y código específico.

Comments are closed.