在控制台LC3中显示3位数字

时间:2018-12-06 18:44:07

标签: lc3

我正在做一个LC2程序,该程序将两个2位数字加起来,然后打印结果,我几乎做了所有事情,并且工作正常。我遇到的问题是必须打印结果时。我不知道该怎么做。这是我的代码:

;总和程序

.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;打印提示输入第二个数字     邮轮     GETC;获取第二个数字     出

;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

;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;; ;提示

提示1 .STRINGZ“此计算器将两个两位数相加,并且可以显示3位结果\ n” FirstNum .STRINGZ“输入第一个数字:\ n” SecondNum .STRINGZ“ \ n输入第二个数字:\ n” 结果.STRINGZ“ \ n总和为:” 30 .FILL x30

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

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

.END

0 个答案:

没有答案