max/min LMC 中未知数量的输入?
max/min of an unknown number of inputs in LMC?
如何在 LMC 中打印 maximum/minimum 未知数量的输入?
我知道我可以从输入 2 子输入 1 并查看它是负数还是正数,但我不知道如何命名输入以便加载它们。
PS:我发现这个很有用 link 可以帮助我解决“未知数量的输入”部分
您 link 编写存储不确定数量的输入值的代码。但在您的情况下不需要:您可以在读取输入值时跟踪最小值和最大值。实际上不需要 store 每个输入值:
#input: 5 3 9 6 2 4
INP ; data size
STA count
BRZ exit ; nothing to do
; initialise
LDA zero
STA max
LDA big
STA min
loop LDA count
SUB one
BRP nextvalue
output LDA min
OUT
LDA max
OUT
exit HLT
nextvalue STA count
INP ; get data value
STA value
SUB min
BRP checkmax
LDA value
STA min
checkmax LDA max
SUB value
BRP loop
LDA value
STA max
BRA loop
zero DAT 0
one DAT 1
big DAT 999
count DAT
min DAT
max DAT
value DAT
<script src="https://cdn.jsdelivr.net/gh/trincot/lmc@v0.812/lmc.js"></script>
如何在 LMC 中打印 maximum/minimum 未知数量的输入?
我知道我可以从输入 2 子输入 1 并查看它是负数还是正数,但我不知道如何命名输入以便加载它们。
PS:我发现这个很有用 link 可以帮助我解决“未知数量的输入”部分
您 link 编写存储不确定数量的输入值的代码。但在您的情况下不需要:您可以在读取输入值时跟踪最小值和最大值。实际上不需要 store 每个输入值:
#input: 5 3 9 6 2 4
INP ; data size
STA count
BRZ exit ; nothing to do
; initialise
LDA zero
STA max
LDA big
STA min
loop LDA count
SUB one
BRP nextvalue
output LDA min
OUT
LDA max
OUT
exit HLT
nextvalue STA count
INP ; get data value
STA value
SUB min
BRP checkmax
LDA value
STA min
checkmax LDA max
SUB value
BRP loop
LDA value
STA max
BRA loop
zero DAT 0
one DAT 1
big DAT 999
count DAT
min DAT
max DAT
value DAT
<script src="https://cdn.jsdelivr.net/gh/trincot/lmc@v0.812/lmc.js"></script>