Retroceder   Foros del Web > Temas generales de computación > Programación

Respuesta
 
Herramientas Desplegado
Antiguo 20-ene-2005, 07:49   #1 (permalink)
WaChUmI está en el buen camino
 
Avatar de WaChUmI
 
Fecha de Ingreso: abril-2003
Ubicación: Barcelona
Mensajes: 116
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
WaChUmI está desconectado   Responder Citando
Antiguo 20-ene-2005, 11:27   #2 (permalink)
Eternal Idol está en el buen camino
 
Avatar de Eternal Idol
 
Fecha de Ingreso: mayo-2004
Ubicación: Europa (VdL)
Mensajes: 5.069
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.

Última edición por Eternal Idol; 20-ene-2005 a las 11:56.
Eternal Idol está desconectado   Responder Citando
Antiguo 20-ene-2005, 11:47   #3 (permalink)
Eternal Idol está en el buen camino
 
Avatar de Eternal Idol
 
Fecha de Ingreso: mayo-2004
Ubicación: Europa (VdL)
Mensajes: 5.069
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.

Última edición por Eternal Idol; 20-ene-2005 a las 11:49.
Eternal Idol está desconectado   Responder Citando
Antiguo 20-ene-2005, 14:15   #4 (permalink)
WaChUmI está en el buen camino
 
Avatar de WaChUmI
 
Fecha de Ingreso: abril-2003
Ubicación: Barcelona
Mensajes: 116
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
WaChUmI está desconectado   Responder Citando
Antiguo 20-ene-2005, 16:03   #5 (permalink)
Eternal Idol está en el buen camino
 
Avatar de Eternal Idol
 
Fecha de Ingreso: mayo-2004
Ubicación: Europa (VdL)
Mensajes: 5.069
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.
Eternal Idol está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 08:09.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93