КОМПАС
КОМПАС , КОМПАС, регенсивная ASS эмблема , [1] Это любой из семейства макроассемблерных языков для Control Data Corporation компании серии 3000 , а также для 60-битных CDC серий 6000 , 7600 и Cyber 70 и 170 мейнфреймов . Хотя архитектуры очень разные, средства макросов и условной сборки схожи.
КОМПАС для 60-битных машин
[ редактировать ]На 60-битных машинах есть две разновидности COMPASS:
- COMPASS CP — это язык ассемблера для CP (центрального процессора), процессора, на котором выполняются пользовательские программы. См. архитектуру CDC 6600 CP .
- COMPASS PP — это язык ассемблера для PP (периферийного процессора), на котором выполняется только код операционной системы . См. архитектуру CDC 6600 PP .
COMPASS — это классический двухпроходный ассемблер с функциями макросов и условной сборки, который генерирует полный список, показывающий как исходный ассемблерный код, так и сгенерированный машинный код (в восьмеричном формате ). CDC Операционные системы были почти полностью написаны на ассемблере COMPASS.
Аппаратное обеспечение центрального процессора (CP или CPU) поддерживает 24 рабочих регистра с именами от A0 до A7, от X0 до X7 и от B0 до B7. Регистры от X0 до X7 имеют длину 60 бит и используются для хранения данных, а регистры от B0 до B7 имеют длину 18 бит, и их основная цель — хранить либо адреса , либо использоваться в качестве индексных регистров , за исключением того, что B0 всегда равен нулю. Согласно соглашению программирования, B1 (или B7) часто содержит положительную 1.
Регистры A или адреса также имеют длину 18 бит. Каждый регистр A соединяется с соответствующим регистром X. Всякий раз, когда адрес устанавливается в любой из регистров от A1 до A5, данные в этом месте памяти (адресе) загружаются в соответствующий регистр X. Аналогично, установка адреса в один из регистров A6 или A7 сохраняет данные, хранящиеся в соответствующем регистре X6 или X7, в этой ячейке памяти. Однако A0 можно использовать для хранения любого адреса, не затрагивая содержимое регистра X0.
CP Инструкции написаны в особенно удобной для пользователя форме: «SA1 A0+B1» обозначает установку адресного регистра A1 в сумму адресного регистра A0 и индексного регистра B1 . Затем аппаратное обеспечение инициирует загрузку памяти по вычисленному адресу в регистр X1.
Инструкции периферийного процессора (PP или PPU) полностью отличаются от инструкций ЦП. Аппаратное обеспечение периферийного процессора проще; он имеет 18-битный регистр аккумулятора A ( , 12-битный регистр адреса программы, 12-битный регистр Q (не видимый программисту) и 22-битный регистр R (используемый для выполнения перемещения адреса во время чтения из центральной памяти и инструкции по написанию в системах Cyber 180 ). Для сборки программ периферийного процессора не требовалось специальной проверки заданий, но для выполнения такие программы необходимо было устанавливать в операционную систему с помощью специальных команд редактирования системы.
Дальнейшее чтение
[ редактировать ]- «Программирование на языке ассемблера для управляющих данных серии 6000» Ральфа Гришмана , Algorithmics Press, 1972. [2]