Random access machine
Accumlator
Parsed code
1 LDI 3 # 検索対象配列Aのi番目の要素を取得 2 ADD 4 # 作業用配列Bの指標jを得るため配列Aの終端位置を加える 3 STA 5 # 配列Bの指標jを記憶する 4 LDI 5 # 配列Bのj番目の要素を取得する 5 JMZ 9 # 要素が0なら命令9に分岐する 6 LDA 3 # 要素が1(重複発見)なら指標iを取得する 7 STA 2 # その指標iを答え用のメモリに格納する 8 HLT # 実行を停止する 9 LDA 1 # 定数(1)を取得する 10 STI 5 # 配列Bの指標jにその定数を記憶する 11 LDA 3 # 配列Aの指標iを取得する 12 SUB 4 # その指標iを配列Aの終端位置で引く 13 JMZ 8 # 指標iが終端位置であれば停止 14 LDA 3 # 配列Aの指標iを取得する 15 ADD 1 # その指標iをインクリメントする 16 STA 3 # 配列Aの新しい要素を取得する 17 JMP 1 # 最初の命令に戻る
1:
定数
2:
答え
3:
検索対象配列Aの指標i
4:
検索対象配列Aの終端位置
5:
作業用配列Bの指標j
6:
--検索対象配列A start--
7:
8:
9:
--検索対象配列A end--
10:
--作業用配列B start--
11:
12:
13:
14:
--作業用配列B end--