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