;Exam2012H24Fall2
;Exam2012H24秋2 シフトによる乗算
;-------------------------
MAIN START
	LD GR0,M ;　被乗数
	LD GR2,N ;　乗　数
	CALL MULT
	ST GR0,ANS
	RET
M DC 101
N DC 33
ANS DS 1 ;　乗算結果
	END
;-------------------
MULT START
	RPUSH
	LD GR1,GR0
	LD GR0,=0   ;乗算結果の初期化
	LD GR2,GR2  ;乗数GR2はゼロであるか？
LP	JZE FIN ;答え　カ
;乗数GR2が右論理シフトの結果ゼロになれば終了
	LD GR3,GR2
	AND GR3,=#0001 ; 最下位ビットのチェック
	JZE CONT
	ADDL GR0,GR1
CONT SLL GR1,1 ; 答え　エ
	SRL GR2,1
	JUMP LP
FIN RPOP
	RET
	END
;----------------
POLY START
	RPUSH
	LD GR4,=0 ;
LP1 LD GR3,GR1
	JZE FIN
	LD GR0,=1
LP2 LD GR3,GR3
	JZE BRK
	CALL MULT
	LAD GR3,-1,GR3
	JUMP LP2
BRK ADDL GR4,GR0
	LAD GR1,-1,GR1
	JUMP LP1
FIN LD GR0,GR4
	RPOP
	RET
	END
;---------------------------
