;Exam2011H23秋Prg2
;３２ビット１０進数整数を１０進数文字列に変換
;---------------------
EX11A02 START
	LD GR1,VALUP
	LD GR2,VALLOW
	LAD GR3,ANS
	CALL BTOD3
	RET
VALLOW DC #B06A   ;被除数下位１６ビット
VALUP DC #98C5    ;被除数上位１６ビット
DIVUP DC #0002  ; #25D6 ;除数の下位１６ビット
DIVLOW DC #0002 ;除数の上位１６ビット
ANS DS 7
ANSLOW DS 1        ;商下位１６ビット
ANSUP DS 1        ;商上位１６ビット
AMARILOW DS 1     ;余り下位１６ビット
AMARIUP DS 1      ;余り上位１６ビット
	END
;------------------------
BTOD3 START
	RPUSH
	LAD GR6,4,GR3
	LD GR7,GR3
	LAD GR3,DAT
LP	CALL DIV
	OR GR5,='0'
	ST GR5,0,GR6
	CPL GR6,GR7
	JZE FIN
	LAD GR6,-1,GR6
	JUMP LP
FIN	RPOP
	RET
DAT DC 0
	DC 10
	END
;----------------------
BTOD2 START
	RPUSH
	LD GR6,GR3
	LAD GR7,4,GR3
	LAD GR3,UDAT   ;除数の初期設定
LP CALL DIV
	OR GR2,='0'    ;答え　イ
	ST GR2,0,GR6   ;１０進数字１文字格納　
	CPL GR6,GR7
	JZE FIN
	LAD GR6,1,GR6
	LD GR1,GR4     ;被除数の再設定
	LD GR2,GR5
	LAD GR3,2,GR3  ;答え　イ
	JUMP LP
FIN RPOP
	RET
UDAT DC 0
	DC 10000
	DC 1000
	DC 0
	DC 100
	DC 10
	DC 0
	DC 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	　　　; GR1
	LD GR5,GR7 　　;GR2
	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
;---------------------
