Created
October 28, 2018 05:00
-
-
Save maehrm/629155572552b75235da12e7df8c0914 to your computer and use it in GitHub Desktop.
平成30年度秋期基本情報午後問12
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Q12 START | |
LAD GR2,YMD | |
CALL DAYOFFST | |
RET | |
YMD DC 2018,10,28 | |
END | |
DAYOFFST START | |
RPUSH | |
LD GR5,0,GR2 ; GR5:年 | |
LD GR3,1,GR2 ; GR3:月 | |
LD GR1,2,GR2 ; GR1:日 | |
SUBL GR1,=1 ; GR1で日数をカウント | |
LAD GR4,ACCMDAYS,GR3 | |
ADDL GR1,-1,GR4 ; 1月1日からの日数(平年)を求める | |
CPA GR3,=3 ; 月が3月以降のときうるう年を考慮 | |
JMI SKIP | |
LD GR2,GR5 | |
CALL LEAPYEAR | |
ADDL GR1,GR0 ; 2/29分の1を足す | |
SKIP LD GR2,=1970 ; 1970年から(年-1)年までの間(ただし、 | |
LOOP CPA GR2,GR5 ; 年>1970)、1年の日数を加算 | |
JZE BREAK | |
CALL LEAPYEAR | |
ADDL GR0,=365 | |
ADDL GR1,GR0 ; 2/29分の1を足す | |
ADDA GR2,=1 | |
JUMP LOOP | |
BREAK LD GR0,GR1 | |
EXIT RPOP | |
RET | |
; ACCMDAYSは、平年の各月1日の1月1日からの日数(1月1日は0日目) | |
ACCMDAYS DC 0,31,59,90,120,151,181,212,243,273,304,334 | |
END | |
LEAPYEAR START | |
RPUSH | |
SUBA GR0,GR0 | |
LD GR3,GR2 | |
AND GR3,=3 | |
JNZ FIN | |
LD GR3,=100 | |
CALL DIVISIBL | |
XOR GR0,=1 | |
JNZ FIN | |
LD GR3,=400 | |
CALL DIVISIBL | |
FIN RPOP | |
RET | |
END | |
DIVISIBL START | |
RPUSH | |
SUBA GR0,GR0 | |
LOOP SUBA GR2,GR3 | |
JPL LOOP | |
JMI FIN2 | |
LD GR0,=1 | |
FIN2 RPOP | |
RET | |
END |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment