MAIN START LD GR1,I LAD GR2,10 LAD GR5,0 LOOP CPA GR1,GR2 JMI NEXT CALL DIV ADDA GR4,Z ST GR4,STR,GR5 LAD GR5,1,GR5 LD GR1,GR3 JUMP LOOP NEXT ADDA GR1,Z ST GR1,STR,GR5 LAD GR5,1,GR5 ST GR5,LEN OUT STR,LEN LAD GR1,STR LD GR2,LEN CALL REV PRT OUT STR,LEN RET I DC 15342 Z DC '0' STR DS 5 LEN DS 1 END ;GR1をGR2で割ったときの商をGR3、剰余をGR4に格納 DIV LD GR4,GR1 LAD GR3,0 DLOOP CPA GR4,GR2 JMI DFIN SUBL GR4,GR2 LAD GR3,1,GR3 JUMP DLOOP DFIN RET END ;アドレスがGR1、長さがGR2の文字列を逆順に並べ替える ;例: 12345 -> 54321 REV START PUSH 0,GR3 PUSH 0,GR4 PUSH 0,GR5 LAD GR3,1 RPU CPA GR2,GR3 JMI RNEXT LD GR4,GR1 ADDA GR4,GR3 LD GR4,-1,GR4 PUSH 0,GR4 LAD GR3,1,GR3 JUMP RPU RNEXT LAD GR3,1 RPO CPA GR2,GR3 JMI PFIN POP GR4 LD GR5,GR1 ADDA GR5,GR3 ST GR4,-1,GR5 LAD GR3,1,GR3 JUMP RPO PFIN POP GR5 POP GR4 POP GR3 RET END