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?
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:
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.