;Exam2011H23秋Prg1減算を用いた３２ビット除算
;---------------------
MAIN START
	LD GR1,VALUP
	LD GR2,VALLOW
	LAD GR3,DIVUP
	CALL DIV
	ST GR1,ANSUP
	ST GR2,ANSLOW
	ST GR4,AMARIUP
	ST GR5,AMARILOW
	RET
VALLOW DC #000C   ;被除数下位１６ビット
VALUP DC #0009    ;被除数上位１６ビット
DIVUP DC #0000  ; #25D6 ;除数の下位１６ビット
DIVLOW DC #0002 ;除数の上位１６ビット
ANSLOW DS 1        ;商下位１６ビット
ANSUP DS 1        ;商上位１６ビット
AMARILOW DS 1     ;余り下位１６ビット
AMARIUP DS 1      ;余り上位１６ビット
	END
;------------------------
DIV START
	PUSH 0,GR6
	PUSH 0,GR7
	LD GR6,GR1 　　;被除数上位１６ビット
	LD GR7,GR2 　　;被除数下位１６ビット
	LD GR1,=#FFFF  ;商の初期化
	LD GR2,=#FFFF
LP LD GR4,GR6	　　　; GR4は余りの上位１６ビット
	LD GR5,GR7 　　;GR5は余りの下位１６ビット
	ADDL GR2,=1    ;商のカウントアップ
	JOV ADJ1
	JUMP CONT
ADJ1 ADDL GR1,=1    ;a 答え　イ
CONT SUBL GR6,0,GR3 ;被除数上位１６ビットから除数を減算
	JOV FIN
	SUBL GR7,1,GR3 ;被除数下位１６ビットから除数を減算
	JOV ADJ2       ; b 答え　ウ
	JUMP LP
ADJ2 SUBL GR6,=1
	JOV FIN
	JUMP LP
FIN POP GR7
	POP GR6
	RET
	END
;---------------------
