閏年判定
;閏年の判定をする ;IN:GR0 YEAR ;OUT:GR0 1:閏年,0:平年 ;西暦を400で割って余りが0の時無条件で閏年。 ;そうでない時 ;4で割って余りが無くてかつ100で割り切れない時閏年。 ISLEAP START ST GR0,YEAR LOOP400 SUBA GR0,C400 ;400で引く JZE TRUE ;0なら余りなし JPL LOOP400 ;正の間繰り返し ADDA GR0,C400 LOOP100 SUBA GR0,C100 ;100で引く JZE FALSE ;0なら割り切れる JPL LOOP100 ;正の間繰り返し ADDA GR0,C100 LOOP4 SUBA GR0,C4 ;4で引く JZE TRUE ;0なら余りなし JPL LOOP4 ;正の間繰り返し JUMP FALSE ;割り切れない TRUE LAD GR0,1 JUMP EXIT FALSE LAD GR0,0 EXIT RET YEAR DS 1 C400 DC 400 C100 DC 100 C4 DC 4 END ; MAIN START LD GR0,AD CALL ISLEAP CPL GR0,=1 JZE YES NO OUT MSGNO,NOLEN JUMP EXIT YES OUT MSGYES,YESLEN EXIT RET AD DC 2000 ;閏年 MSGYES DC '閏年です' YESLEN DC 8 MSGNO DC '閏年ではない' NOLEN DC 12 END