[英]Given 8 bits in a byte, how to find all the possible numbers resulting from flipping of one or more bits in this byte
[英]How to find the greatest of more than two input numbers
我能够编写一个 LMC 程序,它可以找到两个输入值中较大的值。 但是如何修改它以找到任意数量的输入值中的最大值,而不仅仅是两个?
下面是我的代码:
START INP
STA NUM1
INP
STA NUM2
LDA NUM1
SUB NUM2
BRP Positive
LDA NUM2
OUT
HLT
Positive LDA NUM1
HLT
NUM1 DAT
NUM2 DAT
令 NUM1 成为迄今为止的最大值,并进行循环以将下一个输入读入 NUM2。 如果比较显示下一个输入更大,则更新 NUM1,否则不更新。
使用这种方法,最好将 NUM1 重命名为 MAX,将 NUM2 重命名为 NUM。
您还应该确定已提供所有输入的指示。 一种方法是同意用户必须输入一个特定的值来标记输入的结束。 显然,这意味着该特殊值不能成为输入本身的一部分。
如果该终止值为 0,它的外观如下所示:
#input: 5 2 8 4 5 0 START INP BRZ OUTPUT STA MAX LOOP INP BRZ OUTPUT STA NUM LDA MAX SUB NUM BRP LOOP ; input was not greater LDA NUM STA MAX ; input was greater BRA LOOP OUTPUT LDA MAX OUT HLT NUM DAT MAX DAT 0 <script src="https://cdn.jsdelivr.net/gh/trincot/lmc@v0.7/lmc.js"></script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.