我在看这个小人电脑问题:
用户将首先输入数据的大小,然后输入单个数字。
我必须打印 (
OUT
) excatcly 输入的内容,然后是数据值的最大值和最小值
例子:
- 第一个输入: 2 // 数据的数量
- 第二个输入:5 //第一个数据
- 第三个输入:7 //第二个数据
- 输出:2、5、7、5(最小)、7(最大)
我必须在最后打印所有内容(当用户完成输入所有输入时)
我的尝试:
IN # Acc = number of values to read (N)
STO M
LOOP BRZ PRG
SUB ONE
STO N # N=N-1
IN # values
ST STO PRG # Store it in the program starting at PRG
LDA ST # Get current store command (ST)
ADD ONE # add one to store command to increment memory location
STO ST # Update store command (ST)
LDA N # Put current value of N in accumulator
BRZ PRINT
BRP LOOP # Continue loop - 12
#My problem is here
PRINT LDA M
OUT
LDA PRG
OUT
FIN HLT
M DAT 0
N DAT 0 # Number of values to read
ONE DAT 1 # Value 1
PRG DAT 0 # We will store all of the values from this point onward
问题
我试图解决这个问题,但如您所见,我只成功打印了第一个值。我还将输入保存在内存中,但是如何循环地址以获取输出值?