by erkosone » Thu Jan 26, 2012 7:21 pm
ASM es el lenguaje real de la CPU, cada modelo de CPU tiene su propio lenguaje que va grabado en una memoria 'rom' dentro de la propia cpu a modo de "set de instrucciones", el caso es que como para cada CPPU hace falta saber un lenguaje diferente, se creó el lenguaje C, que compila código de alto nivel "entendible por nosotros" en lenguaje máquina o su equivalente ASM, lenguaje máquina y lenguaje ASM no son lo mismo, pero te lo explico así para que lo entiendas, en resumidas cuentas son practicamente lo mismo pero no exactamente.
Mas tarde se crearon muchos mas lenguajes de programación en "alto nivel", para que lo entiendas, algo de "bajo nivel" es muy parecido a 00010011001 o 00100001000, mientras que algo escrito en un lenguaje de alto nivel sería aslgo así: if( a < b ) { ..... }
El lenguaje de programación C se considera un standard, y es debido a que aun siendo un lenguaje de alto nivel, permite la manipulación directa de muchisimas cosas a bajo nivel, entonces, dada esta caracteristica que lo hace tan poderoso es un Standad aceptado por todo el mundo.
A raiz de este lenguaje "C" salieron muchisimos derivados, cada vez a mas alto nivel y cada vez perdiendo o distanciandose mas del lenguaje ASM, cosa que, es inevitable pasar por el..
Entonces imaginate, cuando programas algo en Gemix el proceso real es "mas o menos":
1 interpretar tu juego mediante gemix.
2 enviar al Sistema Operativo las peticiones de Gemix.
3 el sistema operativo las entiende como operaciones, y se las reenvía a la CPU para que las procese.
4 las recoje de nuevo el sistema operativo.
5 y envía los resultado a gemix.
Gemix --> C --> OS --> ASM/CM --> CPU --> OS --> gemix --> "Hello World!".
Leí en no se donde hace tiempo ya que los OS actuales virtualizan las llamadas al hardware para poder manejarse mejor en untihilo o no se que leches.. creo que es por eso que en los OS actuales no te puedes comunicar directamente con la CPU.
Antiguamente podías leer registros o posiciones de memoria directamente desde C.. ahora por ejemplo Windows Vista/7 restringen esto muchisimo, haciendo que pases por cojones por un driver de hardware que gestiona esto.. da mas seguridad.. pero es mas lento.. en fin.. cosas de la modernidad XD..
NOTA: No te tomes esto al pié de la letra, algunas cosas las hablo de memoria y seguro que uno que lo tenga mas reciente te lo podrá explicar "exactamente" como es, pero así a bote pronto es algo parecido a esto.