ВУЗ:
Составители:
L4: .TTYIN ; ДОЧИТАТЬ LF В КОНЦЕ СТРОКИ
ВВОДА
MOV R1,R0 ; ПОЛУЧИТЬ РЕЗУЛЬТАТ В R0
RTS PC ; ВЫЙТИ ИЗ ПОДПРОГРАММЫ
; ПП ВЫВОДА ЦИФРЫ НА Т ЕРМИНАЛ
;ЧИСЛОВОЕ ЗНАЧЕНИЕ ЦИФРЫ НАХОДИТСЯ В R0
PUTDIG: ADD #’O, R0
.TTYOUT
RTS PC
; ПОДПРОГРАММА ВЫДАЧИ НОМЕРА ЭЛЕМЕНТА
; НОМЕР ПЕРЕДАЕТСЯ ЧЕРЕЗ R0
PUTNUM: MOV R3, -(SP) ; СОХРАНИТЬ R3 И R4
MOV R4, -(SP)
.PRINT #QELEM ; ВЫВОД СЛОВА “ЭЛЕМЕНТ “
; ПОЛУЧИТЬ ЦИФРУ ДЕСЯТКОВ В R3 И ЦИФРУ ЕДИНИЦ В R4
MOV R0, R3
CLR R4
DIV #10., R3
; ТЕПЕРЬ В R0 ЧИСЛО ДЕСЯТКОВ В НОМЕРЕ,
; А В R1 ЧИСЛО ЕДИНИЦ
; ВЫВЕСТИ ДВЕ ЦИФРЫ
JSR PC, PUTDIG
MOV R1,R0
JSR PC, PUTDIG
; ВОССТАНОВЛЕНИЕ
MOV (SP)+, R4
MOV (SP)+, R3
RTS PC
; ПОДПРОГРАММА ВЫДАЧИ ЧИСЛА В ДВОИЧНОМ ВИДЕ
; ЧИСЛО ПЕРЕДАЕТСЯ ЧЕРЕЗ R0
PUTBIN: MOV R3, -(SP) ; СОХРАНИТЬ R3 И R4
MOV R4, -(SP)
MOV R0, R3
MOV #16, R4
L5: CLR R0
ASL R3
ROL RO
; ТЕПЕРЬ В R0 СЛЕ ДУЮЩАЯ ДВОИЧНАЯ ЦИФРА В ЧИСЛЕ
JSR PC, PUTDIG
SOB R4, L5
; ВОССТАНОВЛЕНИЕ
MOV (SP)+, R4
MOV (SP)+, R3
.PRINT NEWLINE
RTS PC
.END START ; КОНЕЦ ТЕКСТА ПРОГРАММЫ