KOMPASS

COMPASS , COMP- rehensive ASS embler , är något av en familj av makrosammansättningsspråk Control Data Corporations 3000 -serie och på 60-bitars CDC 6000-serien , 7600 och Cyber ​​70 och 170 stordatorer . Medan arkitekturerna är mycket olika, är makro- och villkorsmonteringsfaciliteterna lika.

KOMPASS för 60-bitars maskiner

Det finns två smaker av COMPASS på 60-bitarsmaskinerna:

COMPASS är en klassisk två-pass assembler med makro och villkorad monteringsfunktioner, och genererar en fullständig lista som visar både källsammansättningskoden och den genererade maskinkoden (i oktal ). CDC:s operativsystem skrevs nästan helt i COMPASS assemblerspråk.

Hårdvara för centralprocessor (CP eller CPU) upprätthåller 24 operationsregister, benämnda A0 till A7, X0 till X7 och B0 till B7. Registren X0 till X7 är 60 bitar långa och används för att hålla data, medan registren B0 till B7 är 18 bitar långa och deras huvudsakliga syfte är att hålla antingen adresser eller användas som indexeringsregister , förutom att B0 alltid är noll. Som en programmeringskonvention innehåller B1 (eller B7) ofta positiv 1.

A- eller adressregister är också 18 bitar långa. Varje A-register parar sig med motsvarande X-register. Närhelst en adress sätts in i något av A1 till A5-registren, laddas data på den minnesplatsen (adressen) in i motsvarande X-register. På samma sätt, inställning av en adress i ett av A6- eller A7-registren lagrar data som finns i motsvarande X6- eller X7-register till den minnesplatsen. A0 kan dock användas för att hålla vilken adress som helst utan att det påverkar innehållet i register X0.

CP- instruktioner är skrivna i en särskilt användarvänlig form: "SA1 A0+B1" betecknar setadressregistret A1 till summan av adressregistret A0 och indexregistret B1 . Hårdvaran initierar sedan en minnesladdning från den beräknade adressen till registret X1.

Instruktioner för perifer processor (PP eller PPU) skiljer sig helt från CPU-instruktioner. Hårdvara för perifer processor är enklare; den har ett 18-bitars A ( ackumulatorregister , ett 12-bitars programadressregister, ett 12-bitars Q-register (inte programmeringssynligt) och ett 22-bitars R-register (används för att utföra adressflyttning under centralminnesläsning och skriva instruktioner på Cyber ​​180 -system.) Ingen speciell jobbvalidering krävdes för att montera perifera processorprogram, men för att exekveras krävdes sådana program installerade i operativsystemet via speciella systemredigeringskommandon.

Vidare läsning

  • "Assembly Language Programming for the Control Data 6000 Series" av Ralph Grishman, Algorithmics Press, 1972.

externa länkar