Top Qs
Línea de tiempo
Chat
Contexto
MIX (lenguaje de programación)
De Wikipedia, la enciclopedia libre
Remove ads
MIX es una computadora hipotética usada en la monografía de Donald Knuth, El Arte de Programar Computadoras (en inglés, The Art of Computer Programming o TAOCP), MIX es el modelo numérico 1009, que deriva de modelos numéricos y nombres contemporáneos, máquinas comerciales influyentes para el autor. (“MIX” también es el valor 1009 en numeración romana.)
En la década de los '60s MIX fue superado por una nueva (también hipotética) arquitectura computacional, MMIX (2009), incorporada en las siguientes ediciones de TAOCP. Las implementaciones de software tanto para arquitecturas MIX como MMIX, han sido desarrolladas y liberadas por Knuth como “MIXware” y “MMIXware,” respectivamente.
Existen también muchos derivados de los emuladores MIX/MMIX de Knuth. GNU MDK, por ejemplo, es un paquete de software liberado y corre sobre una gran variedad de plataformas.
Su propósito para la educación es similar a la Arquitectura DLX desarrollada por John L. Hennessy y David A. Patterson, para la Arquitectura de computadoras: Una Aproximación Cuantitativa (en inglés, Computer Architecture: A Quantitative Approach).
Remove ads
Arquitectura
Resumir
Contexto
MIX es una computadora híbrida binaria/decimal. Cuando se programa en binario, cada byte contiene 6 bits (valores de rango de 0 a 63). En el decimal, cada byte tiene 2 dígitos decimales (valores del rango 0 a 99). Los bytes se agrupan en palabras de cinco bytes además de un signo. Muchos de los programas escritos para MIX trabajan indistintamente en binario o decimal, siempre y cuando el almacenamiento no supere el valor de 63 en un simple byte.
Una palabra puede contener valores en un rango de −1.073.741.823 a 1.073.741.823 en modo binario y −9.999.999.999 a 9.999.999.999 en modo decimal. la representación de valores integrales de signo y Magnitud distinguen en la arquitectura MIX entre “−0” y “+0.”, esto contrasta con la computadoras modernas, para quienes las representaciones de cantidades integrales de complemento a dos incluyen una representación única para el cero, pero para quien el rango mayor de valores pertenece a los números negativos y no a los positivos.
Registradores
Hay 9 tipos de registros en MIX:
- rA: Acumulador (palabra completa, cinco bytes y un signo).
- rX: Extensión (palabra completa, cinco bytes y un signo).
- rI1, rI2, rI3, rI4, rI5 rI6: Registro índice (dos bytes y un signo).
- rJ: Salto de dirección (dos bytes, siempre positivos).
Se asume como un byte a 6 bits. La mayoría puede especificar la posición de los campos (bytes) del registro que serán modificados, usando un sufijo con la forma (primero:último) ((first:last)). El campo de orden cero es el bit de signo.
MIX también registra también si la operación anterior se sobrecargó, y tiene un triple indicador de comparación (menor que'/less than, igual que/equal to, o mayor que/ greater than). En el siguiente diagrama se muestra como se dividen esos campos.
|
|
|
|
|
|
|
|
|
|
|
Memoria y entrada/salida
La máquina MIX tiene 4000 palabras de almacenamiento (cada una con 5 bytes y un signo), direcciones desde 0 a 3999. Una variedad de dispisitivo de entrada y salida también incluidas:
- Unidad de cinta (dispisitivo 0…7).
- Unidad de disco (dispisitivo 8…15).
- Lector de tarjeta (dispisitivo 16).
- Perfordor de tarjeta (dispisitivo 17).
- Impresora lineal (dispisitivo 18).
- Terminal de tipeado (dispisitivo 19).
- Cinta de papel (dispisitivo 20).
Instructiones
Cada instrucción máquina en memoria ocupa una palabra, y consiste en cuatro elementos: la dirección (2 bytes y el signo de la palabra) en memoria a ser leída o escrita; una especificación de índice (1 byte, describiendo donde se usara el índice de registro rI) para agregar a la dirección; una modificación (1 byte) que especifica qué partes del espacio del registro o memoria será leída o alterada; y el código de la operación (1 byte). Todo el código de la operación tiene una asociación mnemónica.
Los programas en MIX frecuentemente usan código flexible, en particular para retornar desde una subrutina. ya que MIX carece de una pila de subrutina para el retorno automático. El código flexible facilita la modicación del byte, permitiendo que el programa almacene datos para, por ejemplo, la parte de una dirección de destino de instrucción, dejando sin modificar al resto de la instrucción.
Los programas MIX están generalmente construidos usando el Lenguaje Ensamblador MIX o MIXAL. El siguiente ejemplo fue tomado del tema códigos de programas hola mundo en diferentes lenguajes de programación:
Remove ads
Véase también
- Lenguaje de programación educativos
- DLX
- LC-3
- Little man computer
- MMIX
- MikroSim
Enlaces externos
- MMIX 2009: Una Computadora RISC para el Tercer Milenio Archivado el 16 de julio de 2011 en Wayback Machine. Página oficial sobre MIX de D. Knuth
- Noticias sobre MMIX Archivado el 16 de julio de 2011 en Wayback Machine. Página oficial de noticias sobre MIX de D. Knuth
- MMIXware: Una Computadora RISC para el Tercer Milenio Archivado el 16 de julio de 2011 en Wayback Machine. Página oficial del Libro sobre MIX de D. Knuth
- Hardware::Simulator::MIX módulo Perl para CPAN
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads