Eran tiempos revueltos en mi vida cuando alguien me contó como funcionaban realmente las máquinas, como era realmente la vida de un ordenador.
En aquel tiempo yo programaba ya bastante bien en el basic del Spectrum, de hecho hacía mis programas de contabilidad, mis horarios, las chuletas para estudiar en el colegio, los primeros juegos... Luego lo guardaba en cinta y andando.
Pero en las revistas que me llegaban a casa con programas aparecía siempre una palabra, la palabra "POKE", que significaba meter, y luego una cadena de caracteres o de pares de números alfanuméricos, que tenías que meter uno a uno y sin confundirte, ya que si no, el programa o el juego no funcionaba.
Todo eso llamó mi atención y leyendo aquí y allá entendí que lo que hacía el poke era meter una información en un dirección de memoria.
En aquel tiempo yo programaba ya bastante bien en el basic del Spectrum, de hecho hacía mis programas de contabilidad, mis horarios, las chuletas para estudiar en el colegio, los primeros juegos... Luego lo guardaba en cinta y andando.
Pero en las revistas que me llegaban a casa con programas aparecía siempre una palabra, la palabra "POKE", que significaba meter, y luego una cadena de caracteres o de pares de números alfanuméricos, que tenías que meter uno a uno y sin confundirte, ya que si no, el programa o el juego no funcionaba.
Todo eso llamó mi atención y leyendo aquí y allá entendí que lo que hacía el poke era meter una información en un dirección de memoria.
En aquellos días me dieron un libro, que si mal no recuerdo era "El Zilog Z80", en el cual me explicaban que lo el ordenador lo que hacía era colocar información en memoria, y mandarla a los periféricos.
Pero el ordenador ni siquiera funcionaba con esos hexadecimales sino que funcionaba con 0 y 1, con largas series de 0 y 1 que eran mandatos de la forma pon esto aquí o llevaló allí, o cambia el estado de tal posición...
Eso era el código máquina, el código que usaba el ordenador para mover la información de un lado a otro, para "MOV" o "GO" o "ADD"... Ese código máquina era tan difícil de leer y tan farragoso que lo que se había hecho es crear un lenguaje algo más legible, el lenguaje ensamblador, que correspondía uno a uno a aquellos códigos que yo metía en el POKE.
Ese lenguaje ensamblador era muy complejo en aquellos tiempos y lo que habían hecho los creadores del Spectrum era crear un interprete, es decir, un traductor que se encargaba de hacer que lo que yo escribía en Basic fuera entendido por el ordenador en código máquina. De esta forma cuando ponías print el Basic lo traducía a un código más entendible al ordenador:
print "jose" era traducido a una cadena de comandos de ensamblador que hacían que la cadena jose apareciera en la pantalla, de modo que primero se seleccionaba la traducción del comando PRINT y luego se pasaba a código binario la cadena jose, y se iba imprimiendo punto a punto cada letra de la cadena "jose" en la pantalla.
En los ordenadores actuales, cuando tu enciendes un ordenador y lo haces funcionar, nada se hace en inglés o en español o chino, todo se actualiza a 0 y 1 y fluye de una zona a otra en forma de bits de un lado a otro de tu ordenador o tu movil o tu tablet.
Por eso es tan importante saber que existe y qué es el código máquina.
Pero el ordenador ni siquiera funcionaba con esos hexadecimales sino que funcionaba con 0 y 1, con largas series de 0 y 1 que eran mandatos de la forma pon esto aquí o llevaló allí, o cambia el estado de tal posición...
Eso era el código máquina, el código que usaba el ordenador para mover la información de un lado a otro, para "MOV" o "GO" o "ADD"... Ese código máquina era tan difícil de leer y tan farragoso que lo que se había hecho es crear un lenguaje algo más legible, el lenguaje ensamblador, que correspondía uno a uno a aquellos códigos que yo metía en el POKE.
Ese lenguaje ensamblador era muy complejo en aquellos tiempos y lo que habían hecho los creadores del Spectrum era crear un interprete, es decir, un traductor que se encargaba de hacer que lo que yo escribía en Basic fuera entendido por el ordenador en código máquina. De esta forma cuando ponías print el Basic lo traducía a un código más entendible al ordenador:
print "jose" era traducido a una cadena de comandos de ensamblador que hacían que la cadena jose apareciera en la pantalla, de modo que primero se seleccionaba la traducción del comando PRINT y luego se pasaba a código binario la cadena jose, y se iba imprimiendo punto a punto cada letra de la cadena "jose" en la pantalla.
En los ordenadores actuales, cuando tu enciendes un ordenador y lo haces funcionar, nada se hace en inglés o en español o chino, todo se actualiza a 0 y 1 y fluye de una zona a otra en forma de bits de un lado a otro de tu ordenador o tu movil o tu tablet.
Por eso es tan importante saber que existe y qué es el código máquina.