[英]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.