Отображение 3-х значных чисел на консоли LC3 - PullRequest
0 голосов
/ 06 декабря 2018

Я делаю программу LC3, которая суммирует два двухзначных числа, а затем печатает результат, я сделал почти все, и он работает нормально.У меня проблема, когда я должен напечатать результат.Я понятия не имею, как это сделать.Вот мой код:

; ПРОГРАММА СУММЫ

.ORIG X3000 
LEA R0,Prompt1      ;print explanation of the program
PUTS

; ПЕРВЫЙ НОМЕР И ПРОСТО ПЕРВЫЙ ЦИФР

LEA R0,FirstNum     ;print prompt to enter the first number
PUTS
GETC            ;get first digit
OUT

;CONVERTING FROM ASCII TO ACTUAL VALUE

ADD R0, R0, #-12
ADD R0, R0, #-12
ADD R0, R0, #-12
ADD R0, R0, #-12    

ADD R1, R0, #0      ;SAVING FIRST NUMBER IN R1
ADD R3, R0, #0      ;SAVING FIRST NUMBER IN R3 TO ADD LATER IF NEEDED


GETC            ;SECOND DIGIT OR ENTER
OUT

;check if is enter or a digit

ADD R0, R0, #-10

; IF STATEMENT 
BRz SKIP        ;if false, skip over code

ADD R1, R3, R1      ; ADDING THE FIRST DIGIT 10 TIMES TO GET THE DIGIT X10 
ADD R1, R3, R1  
ADD R1, R3, R1  
ADD R1, R3, R1  
ADD R1, R3, R1  
ADD R1, R3, R1  
ADD R1, R3, R1  
ADD R1, R3, R1  
ADD R1, R3, R1


ADD R0, R0, #10     ;second digit back to ascii

;CONVERTING FROM ASCII TO ACTUAL VALUE (2ND DIGIT)

ADD R0, R0, #-12
ADD R0, R0, #-12
ADD R0, R0, #-12
ADD R0, R0, #-12

ADD R1, R1, R0      ;adding second digit to the first digit

; ПЕРВЫЙ НОМЕР ПРОПУСТИТЕ LEA R0, SecondNum; приглашение к печативвести второе число PUTS GETC; получить второе число OUT

;CONVERTING FROM ASCII TO ACTUAL VALUE

ADD R0, R0, #-12
ADD R0, R0, #-12
ADD R0, R0, #-12
ADD R0, R0, #-12

ADD R2, R0, #0      ;SAVING SECOND NUMBER IN R2
ADD R4, R0, #0      ;SAVING SECOND NUMBER IN R4 TO ADD LATER IF NEEDED

GETC            ;SECOND DIGIT OR ENTER
OUT

;check if is enter or a digit

ADD R0, R0, #-10

;IF STATEMENT
BRz MOVE



ADD R2, R4, R2      ; ADDING THE SAME NUMBER 10 TIMES TO GET THE NUMBER X10 SINCE IS THE FIRST DIGIT
ADD R2, R4, R2
ADD R2, R4, R2
ADD R2, R4, R2
ADD R2, R4, R2
ADD R2, R4, R2
ADD R2, R4, R2
ADD R2, R4, R2
ADD R2, R4, R2


ADD R0, R0, #10     ;SECOND DIGIT BACK TO ASCII


;CONVERTING FROM ASCII TO ACTUAL VALUE (2ND DIGIT)

ADD R0, R0, #-12
ADD R0, R0, #-12
ADD R0, R0, #-12
ADD R0, R0, #-12

ADD R2, R2, R0

; СУММА ПЕРЕМЕЩЕНИЯ ДОБАВИТЬ R5, R1, R2; СУММЕРИТЬ НОМЕРА И ПОСТАВИТЬ РЕЗУЛЬТАТ В R5

LEA R0,Result       ;PROMPT 
PUTS
ADD R0, R5, #0      ;COPYING RESULT INTO R0

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;prompt

Prompt1 .STRINGZ "Этот калькулятор добавляет два двузначных числа и может отображать трехзначный результат \ n" FirstNum .STRINGZ "Введите первое число: \ n" SecondNum .STRINGZ "\ nВведитевторое число: \ n «Результат .STRINGZ» \ nСумма: «Тридцать .FILL x30

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

.END

...