Hello, World! в Assembler
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
]]>