问题描述
我正在处理这个编码挑战:
为 Little Man Computer 编写一个程序,允许用户管理值列表。它应该以一个空列表开始,然后按如下方式处理输入:
如果输入是:
- 小于 100:将此值添加到列表中,除非列表已有 10 个值,在这种情况下该值将被忽略
- 995:将列表清空
- 996:输出列表当前具有的值的数量
- 997:按照添加到列表中的顺序输出列表当前具有的每个值
- 998:以相反的顺序输出列表当前具有的每个值
- 999:结束程序
- 忽略任何其他值
只要输入值不是 999,输入值的处理就会继续。
当输入 997 时,我在获取代码以按正向顺序打印存储的列表时遇到问题。我想我可能混淆了 ADD
和 SUB
指令。当输入 995 时,我也无法正确重置存储列表。
我能够正确编程的其他一切。
下面是我的代码:
START INP
STA TEMP
SUB NINES
BRZ end
LDA TEMP
SUB EIGHT
BRZ PRIT
lda temp
sub seven
brz printf
LDA TEMP
SUB SIX
BRZ DOOUT
LDA TEMP
SUB FIVE
BRZ RESET
LDA COUNT
SUB TEN
BRZ START
LDA TEMP
SUB HUND
BRP START
SIT LDA SINST
ADD COUNT
STA SLOC
LDA TEMP
SLOC DAT 0
LDA COUNT
ADD ONE
STA COUNT
BRA START
PRIT LDA COUNT
BRZ END
PRINTR LDA LINST
ADD COUNT
SUB ONE
STA LDIT
LDIT DAT 0
OUT
LDA COUNT
SUB ONE
STA COUNT
BRZ END
BRA PRINTR
---PRINTF LDA LINST
ADD COUNT
add ONE
STA LDIT
LDIT DAT 0
OUT
LDA COUNT
SUB ONE
STA COUNT
BRZ END
BRA PRINTF
doout lda count
out
bra start
reset lda zero
sta count
bra start
END HLT
TEMP DAT 0
COUNT DAT 0
ONE DAT 1
TWO DAT 2
TEN DAT 10
HUND DAT 100
SINST DAT 380
LINST DAT 580
five dat 995
six dat 996
seven dat 997
eight dat 998
NINES DAT 999
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)