Dev - C++ - codigo maquina es inviable ?

 
Vista:

codigo maquina es inviable ?

Publicado por ivan (1 intervención) el 07/08/2011 14:59:44
Hola,
como sabréis los compiladores C permiten incluir ensamblador, pero esto no siempre es viable cuando ciertas y nuevas instrucciones no están todavía incluidas.

Entonces no queda mas remedio que introducir código máquina previamente diseñado.
Para ello basta con dimensionar un arreglo de bytes. Y volcar como si de un archivo se tratara en la memoria, obteniendo previamente todas las direcciones necesarias e insertándolas si fuera necesario en dicha memoria para su correcta función. Luego se llama así
...
((void(*)())codigo)();
...
He aquí mi duda/problema...
Resulta que el compilador realiza las ordenes correctas como yo esperaba pero al ejecutar el archivo compilado el sistema operativo da error, con codigo de interrupción c0000005, típico error de manejo de memoria ilegal.
Esto no es un error de diseño ya que en otro lenguaje funciona correctamente y el sistema operativo consiente su ejecución, por ello pregunto si esto tiene solución y se puede corregir, o por el contrario, el compilador GCC no admite este proceso.
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