; Exam2019R01AkiP3pbNPOi̕ɂ炸Z
MAIN	START
	LD GR1,AA1
	LD GR2,BB1
	CALL ADDP
	ST GR0,ANS1
	;----------
	LD GR1,AA2
	LD GR2,BB2
	CALL ADDP
	ST GR0,ANS2
	RET
AA1 	DC #246C
BB1	DC #057C
ANS1	DS 1 ; Zʁ@#303C
AA2 	DC #246D
BB2 	DC #057C
ANS2 	DS 1 ; Zʁ@#189D
	END
;-------------------------------------------
ADDP 	START
; Z̐lł邩ٕł邩𒲂ׂāA
; ADDP1, ADDP2gB
	LD GR0,GR1
	;ŉʃpbN̍ŉʃrbgOłΐAP͕iӂɂj
	XOR GR0,GR2
	;XORʂ̍ŉʃrbgł΂O͓AP͈ٕ
	SRL GR0,1
	;ŉʃrbgPȂ΁AI[o[tEtOPƂȂ
	JOV P2
	CALL ADDP1
	JUMP FIN
P2	CALL ADDP2
FIN 	RET
	END
;-------------------------------
ADDP2	START
	RPUSH
	CPL GR1,GR2
	JPL INI
 	LD GR4,GR1 ;
	LD GR1,GR2
	LD GR2,GR4
INI	ST GR1,A
	ST GR2,B
	LAD GR3,4 ;
	AND GR1,=#000F
	ST GR1,RESULT ;
	LD GR1,A ;
	SRL GR1,0,GR3
	LD GR2,B
	SRL GR2,0,GR3
LOOP	AND GR1,=#000F
	AND GR2,=#000F
	LAD GR0,0
	SUBL GR1,GR2
	JPL MERGE
	JZE MERGE
	ADDL GR1,=10
	LAD GR0,1
MERGE	SLL GR1,0,GR3;
	OR GR1,RESULT ;
	LAD GR3,4,GR3 ;
	CPL GR3,=16
	JZE FIN ;
	ST GR1,RESULT ;
	LD GR1,A
	SRL GR1,0,GR3
	LD GR2,B
	SRL GR2,0,GR3
	SUBL GR1,GR0 ;
	JUMP LOOP
FIN 	LD GR0,GR1
	CPL GR0,=#000D
	JNZ FIN2
	LAD GR0,#000C
FIN2	RPOP
	RET
A	DS 1
B	DS 1
RESULT 	DS 1
	END
;--------------
ADDP1	START
	RPUSH
	ST GR1,A
	ST GR2,B
	LAD GR3,4 ; rbgJE^̏
	AND GR1,=#000F
	ST GR1,RESULT ;@ (a, Aj
	LD GR1,A ;
	SRL GR1,0,GR3 ;@ʃpbNŉʃpbNɃVtgiړj
	LD GR2,B
	SRL GR2,0,GR3
LOOP	AND GR1,=#000F ; ŉʃpbN̐lo
	AND GR2,=#000F
	LAD GR0,0
	ADDL GR1,GR2
	CPL GR1,=10 ; 10ȏ͌グ
	JMI MERGE ; ib, Aj
	SUBL GR1,=10
	LAD GR0,1 ; グZp̂P GR0ɉێ
MERGE	SLL GR1,0,GR3 ;@ic, Cj@GR1ɖ߂
	OR GR1,RESULT ;@@ԌʂƂ̕
	LAD GR3,4,GR3
	;4->8->12->16VtgprbgJE^Z
	CPL GR3,=16
	JZE FIN ;I
	ST GR1,RESULT ; Ԍʂޔ
	LD GR1,A
	SRL GR1,0,GR3
	LD GR2,B
	SRL GR2,0,GR3
	ADDL GR1,GR0 ; オ蕪Z
	JUMP LOOP
FIN 	LD GR0,GR1
	RPOP
	RET
A	DS 1
B	DS 1
RESULT 	DS 1
	END
;-------------
