MAC era un ensamblador de macros para computadoras de las líneas NORD-1 , NORD-10 y ND-100 de Norsk Data . [ 1 ] [ 2 ]
Limitaciones
La máquina de ensamblaje tenía varios problemas que hoy en día se considerarían exóticos o extraños.
Longitud del identificador
Al igual que muchos ensambladores, MAC impuso un límite a la longitud de los nombres de las variables; sin embargo, en lugar de simplemente prohibir nombres que superaran la longitud máxima, solo conservaba las últimas cinco letras de un identificador , ignorando la primera parte del nombre. El motivo de conservar las últimas cinco letras era para que variables como MY_ARRAY1 y MY_ARRAY2 fueran distinguibles. Como resultado, el almacenamiento interno de algunos nombres era muy extraño y, a veces, difícil de entender, ya que los nombres eran idénticos a nombres como RRAY1 y RRAY2, respectivamente. Este comportamiento llevó a algunos programadores a adoptar la práctica de escribir solo las últimas cinco letras de un nombre en su código, ya que el ensamblador ignoraba el resto de todos modos. Debido a la dificultad que tenía un lector humano para comprender el significado del nombre, el código se volvió mucho más difícil de entender. Esto resultó en una menor reutilización de código en el sistema.
Traducción a código máquina
Otra peculiaridad era que el ensamblador funcionaba sumando los "valores" de todos los símbolos de una instrucción para formar el código máquina real. Por ejemplo, para copiar el contenido del registro X al registro A se escribiría:
COPIA SX DA
Internamente, el ensamblador tenía un valor numérico para "COPY", otro valor para "SX" y un tercer valor para "DA". Al sumarlos, se obtenía la instrucción de máquina real. [ 3 ] Sin embargo, si el programador cometía un error e ingresaba (nótese que ambos registros son registros "fuente"):
COPIA SX SA
La máquina no ejecutaría el programa según su intención, ni tampoco generaría un error. En cambio, el ensamblador aceptaría el programa, pero no lo traduciría a una instrucción COPY. La parte SX + SA probablemente resultaría en el valor de un tercer registro o en un desbordamiento, modificando así la instrucción de copiar y transformándola en otra operación no deseada.
Biblioteca de llamadas estándar
Otro problema para los programadores de ensamblador en general es la lista de llamadas al monitor (MON). La instrucción MON es equivalente a la instrucción INT que se encuentra en las CPU de Intel . Sin embargo, si bien originalmente tenían un buen conjunto de funciones para escribir en un archivo, leer de un archivo, etc., rápidamente degeneró en un conjunto de funciones ad hoc . Un ejemplo es una función diseñada originalmente para generar 8 bytes almacenados en 4 de los registros (A, D, T y X). Pronto, alguien, teniendo los bytes en otros registros, creó una nueva función para generar la salida desde esos registros. Esto dejó al programador con un verdadero bosque de funciones de salida que hacían casi lo mismo. En los últimos tiempos de SINTRAN, el problema era encontrar códigos disponibles para estas llamadas al sistema, ya que las 256 ya estaban ocupadas por varias funciones casi idénticas. Así, entraron en escena las llamadas al monitor multifuncionales extendidas, donde una sola llamada al monitor podía realizar varias funciones con un código de función especificado en un registro que designaba cuál de sus subrutinas se ejecutaría.
Referencias
- ↑ Steine, Tor Olav (2011). Impagliazzo, John; Lundin, Per; Wangler, Benkt (eds.). «La fundación, el fantástico crecimiento y el rápido declive de Norsk Data AS» . History of Nordic Computing 3. IFIP Advances in Information and Communication Technology. 350. Berlín, Heidelberg: Springer: 249–257 . doi : 10.1007/978-3-642-23315-9_28 . ISBN 978-3-642-23315-9.
- ↑ «62. DHR Dom 2007-01-11 UfR 2007 lado 974» . Nordisk Domssamling . 50 (1). 2008-05-14. doi : 10.18261/issn1504-3185-2008-01-60 . ISSN 0029-1315 .
- ^ "Ensamblador de almacenamiento masivo MACM Mac" (Documento). Lørenveien 57, Postboks 163 Økern. Oslo 5, Noruega.: NORSK DATA AS noviembre de 1979.
{{cite document}}: CS1 mantenimiento: ubicación ( enlace )
- Ensambladores
- Software Norsk Data