C/Visual C - asm en c++ builder 6

 
Vista:

asm en c++ builder 6

Publicado por desgraciado (1 intervención) el 29/11/2002 02:33:00
el problema que tengo es
{
asm mov ah, 0x00
asm mov al, 0x13
asm int 0x10 /********en esta line a es la del problema me da error ¡pero esta bien ayuda hay otra manera de aserlo de llamar al interrupcion**********/
}

cuando la quita tod sale bien pero si no llama al interrupcion nno se inicia el modo ayudaaaaaaaaaaaaaa

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Solución para el error al llamar a la interrupción INT 0x10

Publicado por Alejandro (913 intervenciones) el 10/04/2025 20:46:24
Problema:
Estás intentando utilizar la interrupción `INT 0x10` para cambiar el modo de video a través de ensamblador en C/Visual C, pero recibes un error en la línea donde llamas a la interrupción.

Solución:
El error que estás experimentando puede deberse a que el entorno de Visual C no permite el uso directo de instrucciones de ensamblador en el modo en que lo estás intentando. Aquí hay un par de alternativas que podrías considerar:

1. Uso de funciones de ensamblador inline:
Puedes intentar usar ensamblador inline en lugar de las instrucciones de ensamblador directas. Aquí tienes un ejemplo de cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <dos.h>
 
void setVideoMode() {
    asm {
        mov ah, 0x00  // Función para establecer el modo de video
        mov al, 0x13  // Modo 13h (320x200, 256 colores)
        int 0x10     // Llamada a la interrupción
    }
}
 
int main() {
    setVideoMode();
    // Tu código aquí
    return 0;
}

2. Uso de un emulador:
Si el código sigue sin funcionar, considera usar un emulador como DOSBox, que permite ejecutar aplicaciones de 16 bits en un entorno moderno. Esto puede ayudar a evitar problemas de compatibilidad con el sistema operativo actual.

3. Verificación de configuración:
Asegúrate de que tu proyecto esté configurado para compilar en modo de 16 bits, ya que `INT 0x10` es una llamada de BIOS que solo funciona en este modo. Si estás en un entorno de 32 o 64 bits, necesitarás un entorno que soporte código de 16 bits.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar