LC3汇编语言读取一位数

时间:2018-03-20 21:31:26

标签: assembly lc3

我有一个LC3语言分配来输入一个两位十进制数并输出总和。例如

  

输入的数字:23.
  输出的数字:5。

现在,我所做的是我编写了程序,除了它在单独的行中读取数字,例如

  

输入数字1(= 2)
  num 2输入(= 3)
  num输出:5

我已粘贴下面的代码供参考,但我想知道是否有人可以帮我解决问题。我不知道从哪里开始所以任何建议都会非常感激!

.ORIG X3000
;INPUTS TWO NUMBERS
IN                ;inputs first char
LD R3,HEXN30      ;subtract x30 to get int
ADD R0,R0,R3      
ADD R1,R0,X0      ;move first int to reg 1
IN                ;inputs second char
ADD R0,R0,R3      ;convert it to int
ADD R2,R0,R1      ;add the two ints
                                          ;PRINT RESULTS
LEA R0,MSG        ;loads address of msg strng
PUTS              ;to output the strng
ADD R0,R2,x0      ;move sum to reg 0, for output
LD R2, NTEN       ;load -10 into reg 2 
ADD R2,R2,R0      ;subtract 10 from sum
LD R3,HEX30       ;add 30 to int to get char
ADD R0,R0,R3
OUT               ;display sum

HALT

;**************DATA*******************

  MSG .STRINGZ "the sum of the 2 numbers is: "
  HEXN30 .FILL xFFD0                              ;-30 hex
  HEX30  .FILL x0030                              ;30 hex
  NTEN   .FILL #-10                               ;-10 dec
  ASCII1 .FILL x0031                              ;1 ascii    
.END

0 个答案:

没有答案