]]> ]]>

Hello, World! в Assembler

Пример для версий PDP-10

CHTTYO — весь ввод/вывод осуществляется с помощью каналов ввода/вывода. Лучше всего сделать символические имена для тех каналов, которые вы используете, и начинать их с CH. Определите эти имена с помощью MIDAS оператора == .

.CALL — это символическое обозначение для вызова системного вызова. Его формат: .CALL [SETZ ? SIXBIT/callname/ ? arguments ((SETZ))] .

OPEN открывает канал ввода/вывода для использования. Требует два параметра — номер канала и имя устройства в SIXBIT.

.LOSE %LSFIL — системный вызов, который печатает сообщение об ошибке ввода/вывода, если вдруг она произошла.

.IOT — системный вызов, который фактически занимается вводом/выводом. В качестве параметра нужно указать канал и адрес, содержащий код символа для вывода. Например, “H представляет H .

         TITLE   PRINTHELLO
A=1                            
CHTTYO==1                       ;Канал для вывода.

START:                               ;Открытие TTY канала.
        .CALL [SETZ ? SIXBIT/OPEN/
                [.UAO,,CHTTYO] ? [SIXBIT/TTY/] ((SETZ))]
         .LOSE %LSFIL
        .IOT CHTTYO,["H]        ;Печать HELLO WORLD посимвольно.
        .IOT CHTTYO,["E]        
        .IOT CHTTYO,["L]        
        .IOT CHTTYO,["L]
        .IOT CHTTYO,["O]
        .IOT CHTTYO,[^M]       ;Символ новой строки
        .IOT CHTTYO,["W]
        .IOT CHTTYO,["O]
        .IOT CHTTYO,["R]
        .IOT CHTTYO,["L]
        .IOT CHTTYO,["D]
        .VALUE                  ;Программка, остановись :)

END START

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам