MACRO-10 es un lenguaje ensamblador con amplias funciones de macros para los sistemas informáticos mainframe basados en PDP-10 de DEC , el DECsystem-10 y el DECSYSTEM-20 . MACRO-10 está implementado como un ensamblador de dos pasadas .
Un programa sencillo de " ¡Hola mundo! " en ensamblador MACRO-10, para ejecutarse en TOPS-10 , adaptado de un ejemplar de una gran colección de programas de "¡Hola mundo!" en varios lenguajes: [1]
TÍTULO HOLA MUNDO ; 'Hola mundo' en MACRO-10 para TOPS-10 BUSCAR UUOSYM ; Hacer que los nombres de los símbolos UUO estén disponibles LAB: ASCIZ / Hola , mundo ! / ; Cadena ASCII terminada en NUL con CRLF INICIO: REINICIAR ; Inicializar trabajo para limpiar estado de ejecución SALIDA: OUTSTR LAB ; Cadena de salida que comienza en LAB: MONRT. ; Regresar al monitor JRST SALIDA ; Reiniciar en SALIDA: si el usuario CONTINÚA el trabajo FIN INICIO ; Finalizar ensamblaje, establecer dirección de inicio del programa
Si este programa se guarda en el archivo HELLO.MAC , se puede ensamblar, vincular y ejecutar de la siguiente manera (el indicador del sistema TOPS-10 está al .
comienzo de las líneas):
.COMPILE HOLA.MAC / DLIST MACRO: HOLA SALIDA.CARGAR ENLACE HOLA : Cargando SALIDA.GUARDAR HOLA guardado .CORRERHola Mundo ! .
El archivo de listado de ensamblaje generado por la /DLIST
opción (Disk LISTing) del COMPILE
comando:
HOLA MUNDO MACRO % 53 B ( 1247 ) 17 : 29 7 - Abr - : 9 Página 1 HOLA MAC 7 - Abr - : 9 17 : 29 TÍTULO HOLA MUNDO ; 'Hola mundo' en MACRO-10 para TOPS-10 BUSCAR UUOSYM ; Hacer que los nombres de los símbolos UUO estén disponibles 000000' 110 145 154 154 157 LAB: ASCIZ / ¡Hola , mundo ! 000001' 054 040 167 157 162 000002' 154 144 041 015 012 / ; Cadena ASCII terminada en NUL con CRLF 000003' 000 000 000 000 000 000004' 047 00 0 00 000000 INICIO: REINICIO ; Inicializar trabajo para limpiar estado de ejecución 000005' 051 03 0 00 000000' SALIDA: OUTSTR LAB ; Cadena de salida que comienza en LAB: 000006' 047 01 0 00 000012 MONRT.; Regresar al monitor 000007' 254 00 0 00 000005' JRST SALIDA ; Reiniciar en SALIDA: si el usuario CONTINÚA el trabajo 000004' FIN INICIO ; Finalizar ensamblaje, establecer dirección de inicio del programa NO SE DETECTARON ERRORES LA INTERRUPCIÓN DEL PROGRAMA ES 000010. EL TIEMPO DE CPU UTILIZADO ES 58 : 25.100 36 P NÚCLEO UTILIZADO HOLA MUNDO MACRO % 53 B ( 1247 ) 17 : 29 7 - Abr - : 9 Página S - 1 HOLA MAC 7 - Abr - : 9 17 : 29 TABLA DE SÍMBOLOS LAB 000000 ' MONRT. 047040 000012 SALIDA 000005 ' OUTSTR 051140 000000 REINICIO 047000 000000 INICIO 000004 '
La fecha ":9" es un problema del año 2000. En el sitio web "99 Bottles of Beer" se puede consultar un programa de ejemplo MACRO-10 más complejo que reproduce una versión de la canción 99 Bottles of Beer . [2]
Para cuerpos de código más grandes, gran parte del código MACRO-10 para los sistemas TOPS-10 y TOPS-20 está disponible en los archivos de cinta Trailing Edge PDP-10. [3]