Las máquinas ejecutan instrucciones en código de máquina, 0 y 1. Los ensambladores son programas que convierten el lenguaje ensamblador en código de máquina binario.
Las primeras computadoras tenían lenguajes de máquina bastante simples, por lo que en realidad se podía descifrar el código de la máquina para un programa corto a mano.
Cuando aprendí por primera vez cómo iniciar una computadora PDP-8 en 1969, tuve que cargar un pequeño bucle de código de máquina en la memoria activando los interruptores para configurar los bits en la memoria correctamente para ese bucle, luego iniciar la computadora que ejecuta ese código de máquina .
El código de máquina que ingresé fue un cargador de arranque. No podía hacer otra cosa que leer un lector de cinta de papel para leer un cargador más extenso en la memoria. (Ese cargador más extenso era esencialmente todo el sistema operativo para la computadora). Eso podría usarse para cargar otros programas en la memoria. Esos otros programas estaban todos en código de máquina binario. (Un agujero en la cinta de papel era 1, ningún agujero era 0.)
- ¿Cómo se descubrió que la Tierra era realmente redonda?
- ¿Se vence el escepticismo filosófico? Si no, ¿hasta qué punto podemos defender el conocimiento ‘real’?
- ¿Hay algunos casos famosos de necrofilia en la historia?
- ¿Cuáles son algunos buenos juegos de mesa para adultos aficionados a la historia?
- ¿Cuál es la venganza final en la historia?
Cintas de papel para el PDP8, fuente de imagen: PC04 Lector de cinta de papel de alta velocidad y cintas de papel perforado
Una de esas cintas de papel que pude cargar fue un editor. El editor podría recibir información de una máquina de teletipo o cinta de papel y crear un archivo de texto, editar ese archivo de texto y luego perforar ese archivo de texto en cinta de papel. Un tipo de archivo de texto era un programa en lenguaje ensamblador con instrucciones como “AGREGAR Y” (es decir, agregar el contenido de la ubicación Y al acumulador). Los programas que escribí para el PDP8 eran todos programas en lenguaje ensamblador.
Otra de las cintas de papel que pude cargar fue un ensamblador. Después de cargar el ensamblador, leería el archivo de texto en cinta de papel que contenía mi programa de lenguaje ensamblador preparado. Era un ensamblador de dos pasos, así que tuve que pasar dos veces la cinta de papel del archivo de texto. Luego, el ensamblador perforaría un archivo ejecutable que estaba en código de máquina binario, pero en cinta de papel.
Finalmente, podría cargar mi programa y comenzar a ejecutarlo. La mayoría de las veces, no se ejecutó correctamente y tuve que depurarlo. Eso implicaría examinar los datos en la memoria, todo en binario, por supuesto, y tratar de descubrir qué salió mal.