Foros del Web » Programación para mayores de 30 ;) » Programación General »

Problema con TurboPascal

Estas en el tema de Problema con TurboPascal en el foro de Programación General en Foros del Web. Holaaa! Pues tngo un problema con el programa TurboPascal, he hecho un programa de listar una serie de numeros, con menu, para inicializar, borrar, introducir ...
  #1 (permalink)  
Antiguo 20/01/2005, 08:49
Avatar de WaChUmI  
Fecha de Ingreso: abril-2003
Ubicación: Barcelona
Mensajes: 116
Antigüedad: 21 años
Puntos: 0
Problema con TurboPascal

Holaaa!
Pues tngo un problema con el programa TurboPascal, he hecho un programa de listar una serie de numeros, con menu, para inicializar, borrar, introducir etc.., y esta todo bien..(corregido por profesor), compila bien y todo, pero a la hora de darle a run, pues como q me da un error (lo he probado en 3 ordenadores diferentes..) y es el siguiente:

Turbo Pascal 7.0
La CPU NTVDM ha encontrado una instrución no permitida.
CS: 19a7 IP:ab90 OP: f0 22 00 00 Elija "cerrar" para finalizar la aplicación.

Alguien sabe a q puede deberse este error??? esq no se q hacer, y tngo q entregar la practica el lunessss!!!

muchas gracias!
__________________
WaChUmI
  #2 (permalink)  
Antiguo 20/01/2005, 12:27
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
NTVDM. Estas tratando de ejecutar un programa de 16 bits en Windows NT, esto se hace mediante emulación.

F0 equivale en ensamblador a LOCK, no se que tal funcionará en modo protegido simulando modo real, probá ejecutandolo bajo Windows 9x o MS-DOS puro.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO

Última edición por Eternal Idol; 20/01/2005 a las 12:56
  #3 (permalink)  
Antiguo 20/01/2005, 12:47
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
Ya he logrado reproducir el problema pero temo que lo vas a tener muy difícil, de cualquier manera si le das a ignorar el programa sigue funcionando bien.

Una solución un poco tomada de los pelos sería parchear el 0xF0 (LOCK) por un 0x90 (NOP), yo lo hice y funciona perfectamente, necesitarías un editor hexadecimal.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO

Última edición por Eternal Idol; 20/01/2005 a las 12:49
  #4 (permalink)  
Antiguo 20/01/2005, 15:15
Avatar de WaChUmI  
Fecha de Ingreso: abril-2003
Ubicación: Barcelona
Mensajes: 116
Antigüedad: 21 años
Puntos: 0
muchas gracias!!!, pero una cosa.. esque no lo entiendo, porque compilando otros programas q hemos hecho funciona... solo me da error con ese programa y no entiendo el porq, si los demas son muy parecidos y no da el error...a q se debe esto??

gracias!!
__________________
WaChUmI
  #5 (permalink)  
Antiguo 20/01/2005, 17:03
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
Cada programa genera un código binario diferente dependiendo del código fuente que le sea suministrado al compilador. No se exactamente que instrucción habrás puesto para que el TurboPascal haya generado un LOCK AND AL, [BX+SI].
¿Puede generar un listing con código assembly Turbo Pascal? Así sabrías a que se corresponde en código fuente de Pascal.

La verdad no estoy muy familiarizado con Pascal y menos con Turbo Pascal.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:12.