RIGHT START ;右寄せ処理 [b02.cas] IN S,LEN ;文字列の入力 LD GR1,LEN ;GR1に文字長を入れる LOOP LAD GR1,-1,GR1 ;GR1-1 → GR1 LD GR0,S,GR1 ;1文字取り出す [ a ] CPA GR0,=' ' ;空白か? JZE LOOP LD GR2,LEN ;GR2に文字長を入れる LD GR4,GR1 ;GR1 → GR4 [ b ] SUBA GR2,GR1 ;GR2-GR1 → GR2 SUBA GR2,=1 ;GR2-1 → GR2 LD GR0,=' ' ;GR0に空白を入れる LD GR1,GR2 ;GR2 → GR1 LAD GR3,0 ;0 → GR3 N0 SUBA GR2,=1 ;GR2-1 → GR2 JMI N1 ST GR0,R,GR2 JUMP N0 N1 LAD GR2,0 ;0 → GR2 N2 LD GR0,S,GR2 ;Sの1文字を取り出す ST GR0,R,GR1 ;1文字を格納 [ c ] CPA GR4,GR2 JZE FIN LAD GR1,1,GR1 ;GR1+1 → GR1 LAD GR2,1,GR2 ;GR2+1 → GR2 JUMP N2 FIN LAD GR1,1,GR1 ;GR1+1 → GR1 ST GR1,LEN OUT R,LEN ;Rを出力 RET R DS 20 ;出力域 LEN DS 1 S DS 256 ;入力域 END