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