MAIN START LAD GR1,ARG CALL SEARCH ;副プログラムの呼び出し RET ARG DC DATA,'A' DATA DC 'PROGRAMMING LANGUAGE CASL.' END SEARCH START ;文字の検索 [b14.cas] RPUSH ;汎用レジスタの退避 LD GR2,0,GR1 ;文字列のアドレス [ a ] LAD GR2,-1,GR2 LAD GR3,NUM LAD GR4,0 ;カウンタ LOOP LAD GR2,1,GR2 ;文字列のアドレスアップ LAD GR4,1,GR4 ;カウンタのアップ CPA GR4,=10 ;10を越えたか [ b ] JMI BR LAD GR3,1,GR3 ;次の桁へ LAD GR4,0 ;GR4を0に戻す BR LD GR5,0,GR2 CPA GR5,='.' ;終了? JZE END CPA GR5,1,GR1 ;文字の比較 [ c ] JNZ LOOP LD GR5,GR4 ADDA GR5,='0' ;文字に変換 ST GR5,OUT1 ;1桁目格納 LD GR5,0,GR3 ;10の桁を取り出す ST GR5,OUT10 ;10の位を格納 [ d ] OUT OUT10,LEN JUMP LOOP END RPOP ;汎用レジスタの復元 RET NUM DC ' 12345678' OUT10 DS 1 OUT1 DS 1 LEN DC 2 END