Connect with us

Hi, what are you looking for?

Tecnología

Reto lúdico: Un ensamblador del 6502 escrito en algún lenguaje moderno

Los procesadores actuales son muy poderosos, corren a velocidades que ya van en los 4 GHz y pueden soportar 64 bits. Estos chips tienen incluido un conjunto de instrucciones que son las que gobiernan lo que hacen los microprocesadores a cada momento. Hay diferentes arquitecturas y conjuntos de instrucciones.

¿Cuáles son las ventajas y desventajas de comprar un teléfono reacondicionado?

Pero en el pasado no tan remoto, llegaron los primeros procesadores, que eran de 8 bits, con un bus de 16 bits de direccionamiento, lo que hacía que pudiesen tener hasta 64K bytes de memoria RAM para poder trabajar. Considerando lo que puede hacerse ahora esta cantidad de memoria parece muy limitante y lo es, porque los sistemas ahora requieren de toda una infraestructura de hardware para poder ejecutarse.

Sin embargo, los procesadores de 8 bits nos enseñaron muchas cosas, entre ellas, a programar en ensamblador, que es el lenguaje más cercano al lenguaje de máquina. Un microprocesador, como el 6502, que fue muy popular en las máquinas Commodore, Atari y Apple II, tenía un conjunto de instrucciones y éste a su vez una serie de modos para direccionar la memoria. Había, por ejemplo, instrucciones para guardar un dato de memoria de manera directa, o bien, que lo guardase en una localidad de memoria especificando un índice que salía de un arreglo. Los modos de direccionamiento enriquecían el lenguaje del procesador y lo que podía hacerse.

Desde luego que los códigos de la máquina tenían ya para ese entonces (principios de los años 1980s), una serie de códigos “mnemotécnicos”, los cuales se asociaban a los valores de las instrucciones porque no hay que olvidar, que al final de cuentas, la máquina solamente usa números. Así, por ejemplo, LDA significaba Load the Accumulator A, un registro del microprocesador y NOP simbolizaba la instrucción de No Operation, es decir, solamente gasta ciclos de reloj.

Con esta lista de pseudo códigos, un programador podía entonces escribir programas y estos se traducían a los códigos numéricos, que formaban el archivo binario que era finalmente un programa “ensamblado” por un sistema llamado “ensamblador”. El ensamblador era pues un editor específico para crear programas al casi más bajo nivel de cómputo y sin tener que escribir los códigos numéricos que representaban las instrucciones. Esta labor tediosa la hacía el ensamblador.

Con el tiempo, los ensambladores crearon un sistema para poner macroinstrucciones, es decir, un grupo de instrucciones en ensamblador que hacían una tarea en particular. Y de pronto el ensamblador era un poco más que un editor de programas, era todo un sistema que daba muchas más facilidades al que codificaba.

Encuentro ahora en la red un ensamblador para el procesador 6502 escrito en BASIC. La ventaja de este enfoque es que el sistema puede trabajar simplemente si se tiene acceso a algún intérprete o compilador del BASIC tradicional. Este ensamblador no requiere además de tener un microprocesador 6502, pero genera código para una máquina de estas características. A todo esto, si no tiene una computadora con un 6502, siempre puede usar un emulador, que los hay por decenas (http://www.6502.org). Si está en ese caso, el programa en BASIC es realmente un “ensamblador cruzado”, es decir, corre en una máquina que soporta un conjunto de instrucciones, pero genera código para otro tipo de procesador.

La idea es pues: ¿sería usted capaz de escribir un ensamblador para un microprocesador como el 6502 o el 6800 (que es igualmente sencillo en sus modos de operación)? El reto tendrá como premio una taza de la Morsa. Si el ganador es de provincia, se le mandará un USB de 8 GB al menos, porque mandar una taza por mensajería es ridículamente costoso. Cabe señalar que este concurso busca simplemente alentar el trabajo de la programación y mostrar que puede ser lúdica. Es un concurso de buena fe. Si hay, por ejemplo, dos o más respuestas satisfactorias, ganará quien la haya mandado primero. El ganador cede su código fuente a la comunidad. Es decir, se promueve el código abierto.

Las respuestas al reto deben mandarlas a morsa@la-morsa.com.

El ejercicio es interesante y quien lo intente seguramente comenzará a tener una visión mucho más rica de lo que hacen los procesadores. Más allá del posible premio, hay una cuestión de satisfacción personal en realizar este tipo de trabajos. Así que manos a la obra, es decir, ¡Manos al teclado!

La entrada Reto lúdico: Un ensamblador del 6502 escrito en algún lenguaje moderno se publicó primero en unocero.

Click to comment

Comenta

Últimas noticias

Personas votando en una reunión congresual para actualizar valores catastrales en Culiacán

Actualización

El Congreso aprobó los Valores Unitarios del Suelo y Construcciones 2026; impuesto predial sube 2.5–4% en 14 municipios. 🏠📈 #Sinaloa #predial

Legisladores en el Senado discutiendo la Ley General de Aguas, con carteles sobre el agua como derecho, no mercancía. Legisladores en el Senado discutiendo la Ley General de Aguas, con carteles sobre el agua como derecho, no mercancía.

Nacionales

El Senado aprueba acelerar discusión de la ley general de aguas; provoca protestas y críticas por omitir comisiones 🚜 💧 #agua #ley

Josué David Hernández, joven boxeador mexicano con guantes de boxeo, sin camiseta y con tatuaje en el pecho. Josué David Hernández, joven boxeador mexicano con guantes de boxeo, sin camiseta y con tatuaje en el pecho.

Deportes

La violencia enluta al boxeo potosino: murió Josué David Hernández, joven promesa de 20 años; exigen justicia. 🥊💔 #Justicia #BoxeoPotosino #SLP

Bomberos en 'Casa de Tostado de Café', Mazatlán, tras incendio controlado. Bomberos en 'Casa de Tostado de Café', Mazatlán, tras incendio controlado.

Mazatlán

Bomberos respondieron a un incendio en comercio sobre Av. Insurgentes; propietario controló las llamas en una tostadora ☕🔥, sin personas lesionadas. #Mazatlán

Operativo policial nocturno en José's Shop con cintas de precaución. Operativo policial nocturno en José's Shop con cintas de precaución.

Mazatlán

En Mazatlán asesinan a un hombre dentro de una boutique en presunto intento de asalto; Marina y Fiscalía investigan la escena🚔👔🕯️ #Mazatlán

Ilustración de detective investigando a Netflix en relación con la normativa fiscal del SAT. Ilustración de detective investigando a Netflix en relación con la normativa fiscal del SAT.

Actualización

El SAT aclaró que revisará solo información fiscal de Netflix y plataformas, sin datos personales ni hábitos de consumo 🔍 🔒 #SAT

Suscríbete y recibe noticias

Tendencia

Sinaloa

Familiares reportaron la desaparición de Thakar Quintero en la colonia Burócrata, Culiacán desde 27 de noviembre; piden datos 🔍 🏠 #Culiacán #Desaparecido

Nacionales

Autoridades👮 de Nuevo León inician proceso contra mujer por violencia infantil tras video que muestra agresión; niña👧 en DIF Capullos. #NuevoLeón #violenciaInfantil

Actualización

Estados Unidos 🇺🇸 suspende solicitudes de inmigración de 19 países; trámites y decisiones de asilo quedan detenidos, migrantes enfrentan incertidumbre ⛔🛂 #inmigración

Internacionales

Estados Unidos revocó la visa a alex tonatiuh márquez, director de investigación aduanera; caso impulsa investigaciones y revisión institucional 🇺🇸 🛂 #corrupción

Nacionales

Baltazar Valdez anuncia bloquear el Zócalo sábado 6 de diciembre; campesinos exigen reforma a la ley de aguas. 🚜 ✊ #campesinos #protesta

Culiacán

En Fracc. Canaco, Culiacán, balean e incendian una vivienda; hallan artefactos explosivos, bomberos controlan fuego 🔥 💣 🚓 sin detenidos #Culiacán #explosivos

Sinaloa

Reportan ataque en Culiacán: desconocidos incendiaron y balearon una vivienda y dos vehículos de lujo en Portalegre 🔥🚗🏠 Autoridades investigan #Culiacán #seguridad

Business

El precio del dólar se cotiza en 18.2527 pesos; peso se deprecia ligeramente mientras mercados esperan datos de EE. UU.📉💱 #dólar #economía

Desarrollado por
FIIXCOM