X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=as%2Fitoa.casl;fp=as%2Fitoa.casl;h=0000000000000000000000000000000000000000;hb=fb54b1c9d2fbc3d4a62c6b4d38ff68e9d3b25c26;hp=75338f2b4748881fbeffd40f86bdca09a4274cc1;hpb=b4e48008c95b35c692827326191698c22b06124f;p=YACASL2.git diff --git a/as/itoa.casl b/as/itoa.casl deleted file mode 100644 index 75338f2..0000000 --- a/as/itoa.casl +++ /dev/null @@ -1,90 +0,0 @@ -;GR1に格納された数値を表示 -ITOA START - PUSH 0,GR2 - PUSH 0,GR3 - PUSH 0,GR4 - LAD GR0,0 - LAD GR2,0 - AND GR1,GR1 - JPL ILOOP - JZE ILOOP - LAD GR0,1 - CALL INV -ILOOP CPA GR1,TEN - JMI INEXT - CALL DIV - ADDA GR4,ZCHAR - ST GR4,STR,GR2 - LAD GR2,1,GR2 - LD GR1,GR3 - JUMP ILOOP -INEXT ADDA GR1,ZCHAR - ST GR1,STR,GR2 - LAD GR2,1,GR2 - CPA GR0,=1 - JPL PRT - JMI PRT - LD GR1,MINUS - ST GR1,STR,GR2 - LAD GR2,1,GR2 -PRT ST GR2,LEN - LAD GR1,STR - LD GR2,LEN - CALL REV - OUT STR,LEN - POP GR4 - POP GR3 - POP GR2 - RET -TEN DC 10 -ZCHAR DC '0' -MINUS DC '-' -STR DS 6 -LEN DS 1 - END -;GR1を10で割ったときの商をGR3、剰余をGR4に格納 -DIV LD GR4,GR1 - LAD GR3,0 -DLOOP CPA GR4,TEN - JMI DFIN - SUBL GR4,TEN - 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 RFIN - POP GR4 - LD GR5,GR1 - ADDA GR5,GR3 - ST GR4,-1,GR5 - LAD GR3,1,GR3 - JUMP RPO -RFIN POP GR5 - POP GR4 - POP GR3 - RET - END -;GR1の内容をマイナス値にする -;例: 10 -> -10, -20 -> 20 -INV START - XOR GR1,=#FFFF - LAD GR1,1,GR1 - RET - END