LMCの未知の入力数の最大/最小?
Nov 23 2020
LMCで未知数の入力の最大値/最小値を出力するにはどうすればよいですか?
入力2から入力1をサブ入力して、それが負か正かを確認できることは知っていますが、入力に名前を付けてロードできるようにする方法がわかりません。
PS:「不明な入力数」の部分で役立つこの便利なリンクを見つけました。LMC(リトルマンコンピューター)のさまざまなアドレスに不明な数の入力を保存するにはどうすればよいですか?
回答
2 trincot Nov 23 2020 at 22:23
不確定な数の入力値を格納するコードにリンクします。しかし、あなたの場合、それは必要ありません。入力値を読み取りながら、最小値と最大値を追跡できます。各入力値を実際に保存する必要はありません。
#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/[email protected]/lmc.js"></script>