【发布时间】:2015-05-08 04:30:39
【问题描述】:
到目前为止,我已经制作了一个添加 2 个数字但它们是单个数字的代码。
.orig x3000
lea r0, string1
puts
getc
out
add r1, r0, 0
ld r0, minus48
add r1, r1, r0
lea r0, string1 ;input one
puts
LOOP
getc
out
add r2, r0, 0
ld r0, minus48
add r2, r2, r0
add r3, r1, r2
out
OUTSIDE
lea r0, string2 ;input two
puts
ld r0, plus48
add r0, r3, r0
out
HALT
plus48 .FILL 48
minus48 .FILL -48
string1 .stringz "\nPlease enter a number: "
string2 .stringz "\nSum is: "
.end
这很好用,但是我一直在尝试让数字输入存储多于 1 位,这就是我所做的:
.orig x3000
lea r0, string1 ;input one
puts
LOOP
getc
out
add r1, r0, 0
brz OUTSIDE
ld r0, minus48
add r1, r1, r0
out
brnzp LOOP
lea r0, string1
puts
getc
out
add r2, r0, 0
ld r0, minus48
add r2, r2, r0
add r3, r1, r2
out
OUTSIDE
lea r0, string2 ;input two
puts
ld r0, plus48
add r0, r3, r0
out
HALT
plus48 .FILL 48
minus48 .FILL -48
string1 .stringz "\nPlease enter a number: "
string2 .stringz "\nSum is: "
.end
我尝试使用循环,这样我可以输入更多的数字,并且总和可以计算到 9999。但是我的循环输出了奇怪的字符,但它并没有像我想要的那样运行,LC3 就像它一样令人困惑花了我很长时间才得到个位数的加法,所以非常感谢您的帮助。
【问题讨论】:
标签: lc3