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>