	TITLE	MAXVAL
	ORG	200
MAXVAL: L	0,DATA		; 先頭の値をレジスタ0(最大値を格納)に読み込む
	LA	1,DATA+1	; レジスタ1に2番目のデータのアドレスをセット
	LC	2,0		; レジスタ2に0をセット(カウンタとして使用)
S1:	CMP	2,16		; レジスタ2(カウンタ)とデータ数(=16)を比較
	BNM	S3		; レジスタ2の値がデータ数以上のときはループ終了
	LX	3,(1)		; レジスタ1が指すアドレスのデータをレジスタ3に読み込む
	CMP	0,(3)		; レジスタ0(現在の最大値)とレジスタ3の値を比較
	BNM	S2		; レジスタ3の値が現在の最大値より大きくないときはスキップ
	LEA	0,(3)		; レジスタ3の値を(新しい最大値として)レジスタ0にコピー
S2:	LEA	2,1(2)		; レジスタ2(=ここまで調べたデータ数)の値を1つ増やす
	LEA	1,1(1)		; レジスタ1(=次に調べるデータのアドレス)の値を1つ増やす
	B	S1		; ラベル S1(ループの先頭)へ分岐
S3:	ST	0,RESULT	; 計算結果(=最大値)を書き込む
	HLT
DATA:	DC	1
	DC	4
	DC	1
	DC	4
	DC	2
	DC	1
	DC	3
	DC	5
	DC	6
	DC	2
	DC	3
	DC	7
	DC	3
	DC	0
	DC	9
	DC	5
RESULT:	DS	1		; 計算結果(＝最大値)を記録
	END
