МАКРО-10
MACRO-10 — это язык ассемблера с обширными возможностями макросов для DEC PDP -10 на базе мэйнфреймов , DECsystem-10 и DECSYSTEM-20 . МАКРО-10 реализован как двухпроходный ассемблер .
Примеры программирования
[ редактировать ]Простая программа « Привет, мир! » на ассемблере МАКРО-10 для запуска под управлением TOPS-10 , адаптированная на основе образца из большой коллекции программ «Привет, мир» на разных языках: [1]
TITLE HELLO WORLD
; 'Hello world' in MACRO-10 for TOPS-10
SEARCH UUOSYM ; Make UUO symbol names available
LAB: ASCIZ /Hello, world!
/ ; NUL-terminated ASCII string with CRLF
START: RESET ; Initialise job to clean runtime state
OUTPUT: OUTSTR LAB ; Output string starting at LAB:
MONRT. ; Return to monitor
JRST OUTPUT ; Restart at OUTPUT: if user CONTINUEs job
END START ; End assembly, set program start address
Если эта программа сохранена в файле HELLO.MAC , его можно собрать, связать и запустить следующим образом (системное приглашение TOPS-10 — это .
в начале строки):
.COMPILE HELLO.MAC /DLIST
MACRO: HELLO
EXIT
.LOAD HELLO
LINK: Loading
EXIT
.SAVE
HELLO saved
.RUN
Hello, world!
.
Файл списка сборок, созданный /DLIST
(Список дисков) в меню COMPILE
команда:
HELLO WORLD MACRO %53B(1247) 17:29 7-Apr-:9 Page 1
HELLO MAC 7-Apr-:9 17:29
TITLE HELLO WORLD
; 'Hello world' in MACRO-10 for TOPS-10
SEARCH UUOSYM ; Make UUO symbol names available
000000' 110 145 154 154 157 LAB: ASCIZ /Hello, world!
000001' 054 040 167 157 162
000002' 154 144 041 015 012 / ; NUL-terminated ASCII string with CRLF
000003' 000 000 000 000 000
000004' 047 00 0 00 000000 START: RESET ; Initialise job to clean runtime state
000005' 051 03 0 00 000000' OUTPUT: OUTSTR LAB ; Output string starting at LAB:
000006' 047 01 0 00 000012 MONRT. ; Return to monitor
000007' 254 00 0 00 000005' JRST OUTPUT ; Restart at OUTPUT: if user CONTINUEs job
000004' END START ; End assembly, set program start address
NO ERRORS DETECTED
PROGRAM BREAK IS 000010
CPU TIME USED 58:25.100
36P CORE USED
HELLO WORLD MACRO %53B(1247) 17:29 7-Apr-:9 Page S-1
HELLO MAC 7-Apr-:9 17:29 SYMBOL TABLE
LAB 000000'
MONRT. 047040 000012
OUTPUT 000005'
OUTSTR 051140 000000
RESET 047000 000000
START 000004'
Дата «:9» — это проблема 2000 года . Более сложный пример программы MACRO-10, которая воспроизводит одну версию песни «99 бутылок пива », можно изучить на веб-сайте «99 бутылок пива». [2]
Для более крупных массивов кода большая часть кода MACRO-10 для систем TOPS-10 и TOPS-20 доступна в ленточных архивах Trailing Edge PDP-10. [3]
Ссылки
[ редактировать ]- ^ Вольфрам Рёслер, «Коллекция Hello World» . Проверено 16 ноября 2016 г.
- ^ "99 бутылок пива" Проверено 10 апреля 2009 г.
- ^ Архив программного обеспечения Trailing Edge PDP-10
Внешние ссылки
[ редактировать ]- Справочное руководство по ассемблеру макросов DECsystem-10 (PDF) . Мейнард, Массачусетс: Корпорация цифрового оборудования. Апрель 1978 года . Проверено 8 июля 2010 г.
- Певец, Майкл (1978). Введение в программирование на языке ассемблера DECsystem-10 . Нью-Йорк: Джон Уайли и сыновья. п. 145. ИСБН 0-471-03458-4 .
- Горин, Ральф Э. (1981). Введение в программирование на языке ассемблера DECSYSTEM-20 . Бедфорд, Массачусетс: Digital Press. п. 539. ИСБН 0-932376-12-6 .