Por @Alvy — 23 de Noviembre de 2017

AssemblerSimulator

Este Simulador de ensamblador de 8 bits en JavaScript es una magnífica herramienta educativa para aprender y practicar las bases de uno de los lenguajes más cercanos al código máquina. Cada instrucción de ensamblador se traduce en un código ejecutable directamente por el procesador de la simulación, lo que permite hacerse buena idea de «cómo funcionan las cosas» en las tripas de la máquina – aunque sea de forma muy simplificada.

El simulador lo escribió Marco Schweighauser en JavaScript+Angular y funciona directamente en el navegador. En la ventana de la izquierda se escribe el código en ensamblador y al pulsar el botón Ensamblar se convierte cada instrucción en instrucciones de uno, dos o tres bytes en la RAM, respetando las referencias. Los botones Run/Stop y Step permiten ejecutar o parar el programa y examinarlo paso a paso. Reset reinicia el simulador.

Dado su carácter didáctico y la búsqueda de la simplicidad sus posibilidades son muy limitadas: sólo hay 256 bytes de RAM y tanto el código del programa como los datos y la «consola de salida» deben caber en esa escasa memoria. Hay cuatro registros (A, B, C, D) y tres flags (cero = Z, acarreo = C y fallo = F), además de dos punteros (IP = instrucciones, pila = SP). Hay una descripción completa de la sintaxis, diseñada como las de las CPU de tipo x86.

Me encontré con este simulador leyendo The Surprising Story of the First Microprocessors en IEEE Spectrum, que es un gran artículo sobre la historia de las primeros procesadores, del 4004 en adelante – e incluso antes.

§

Tras publicar esta anotación nos escribió Pablo Parra, profesor del Departamento de Automática de la Universidad de Alcalá, para contarnos sobre una versión mejorada que han desarrollado y acaban de publicar: el Simulador de ensamblador de 16 bits:

Asembler16Es una versión mejorada del simulador con una arquitectura de 16-bits y más funcionalidades como, por ejemplo, modo dual de ejecución (modo usuario y modo supervisor), interrupciones y dos dispositivos adicionales de entrada/salida (un display de 16x16 pixeles y un keypad).

Pretendemos utilizar el simulador en la docencia de la asignatura de Sistemas Operativos de Grado en Ingeniería de Computadores el cuatrimestre que viene.

El simulador incluye varios programas de ejemplo que se pueden cargar en memoria desde el botón Assemble y ejecutar empleando la orden Run.

Compartir en Flipboard Publicar / Tuitear Publicar