COMPASS , COMP rehensive ASS embler , [ 1 ] es cualquiera de una familia de lenguajes de ensamblaje de macros para la serie 3000 de Control Data Corporation , y para las computadoras centrales de las series CDC 6000 , 7600 y Cyber 70 y 170 de 60 bits . Si bien las arquitecturas son muy diferentes, las funciones de ensamblaje de macros y condicionales son similares.
COMPASS para máquinas de 60 bits
Existen dos versiones de COMPASS en las máquinas de 60 bits:
- COMPASS CP es el lenguaje ensamblador para el CP (Procesador Central), el procesador que ejecuta los programas de usuario. Consulte la arquitectura del CP CDC 6600 .
- COMPASS PP es el lenguaje ensamblador para el PP (Procesador Periférico), que solo ejecuta código del sistema operativo . Consulte la arquitectura del PP CDC 6600 .
COMPASS es un ensamblador clásico de dos pasadas con funciones de ensamblaje de macros y condicionales, y genera un listado completo que muestra tanto el código fuente en lenguaje ensamblador como el código máquina generado (en octal ). Los sistemas operativos de CDC se escribieron casi en su totalidad en lenguaje ensamblador COMPASS.
El procesador central (CP o CPU) mantiene 24 registros operativos , denominados A0 a A7, X0 a X7 y B0 a B7. Los registros X0 a X7 tienen una longitud de 60 bits y se utilizan para almacenar datos, mientras que los registros B0 a B7 tienen una longitud de 18 bits y su función principal es almacenar direcciones o utilizarse como registros de indexación , con la excepción de que B0 siempre es cero. Como convención de programación, B1 (o B7) suele contener un 1 positivo.
Los registros A o de direcciones también tienen 18 bits de longitud. Cada registro A se empareja con el registro X correspondiente. Cuando se asigna una dirección a cualquiera de los registros A1 a A5, los datos de esa ubicación de memoria (dirección) se cargan en el registro X correspondiente. Del mismo modo, al asignar una dirección a uno de los registros A6 o A7, los datos almacenados en el registro X6 o X7 correspondiente se guardan en esa ubicación de memoria. Sin embargo, el registro A0 puede utilizarse para almacenar cualquier dirección sin afectar el contenido del registro X0.
Las instrucciones CP están escritas de una forma particularmente fácil de usar: "SA1 A0+B1" indica que se debe establecer el registro de dirección A1 como la suma del registro de dirección A0 y el registro de índice B1 . A continuación, el hardware inicia una carga de memoria desde la dirección calculada al registro X1.
Las instrucciones del procesador periférico (PP o PPU) son completamente diferentes de las instrucciones de la CPU. El hardware del procesador periférico es más simple; cuenta con un registro acumulador A de 18 bits , un registro de dirección de programa de 12 bits, un registro Q de 12 bits (no visible para el programador) y un registro R de 22 bits (utilizado para la reubicación de direcciones durante las instrucciones de lectura y escritura de la memoria central en los sistemas Cyber 180 ). No se requería ninguna validación especial para ensamblar los programas del procesador periférico, pero para su ejecución, dichos programas debían instalarse en el sistema operativo mediante comandos especiales de edición del sistema.
Lecturas adicionales
- "Programación en lenguaje ensamblador para la serie Control Data 6000" por Ralph Grishman , Algorithmics Press, 1972. [ 2 ]
Referencias
Enlaces externos
- COMPASS para sistemas de 24 bits CDC3100, 3200, 3300 y 3500
- COMPASS para el sistema CDC3600 de 48 bits
- COMPASS para sistemas CDC6000 y 7000 de 60 bits
- COMPASS versión 3 para sistemas CDC CYBER
- lenguajes ensamblador
- Software para mainframes de Control Data Corporation