NUMGET START BEGIN IN INBUF,LENG ;数字の入力 LD GR1,LENG ;入力文字長 P1 SUBA GR1,=1 ; 1引く JMI XNULL LD GR2,=' ' ;スペースを入れる CPA GR2,INBUF,GR1 ;後続スペース JZE P1 ST GR1,LENG ;長さを格納 LAD GR1,-1 ;指標レジスタ P2 [ ( a ) ] ;指標レジスタを増やす CPA GR2,INBUF,GR1 ;先頭スペース JZE P2 LD GR2,LENG ; SUBA GR2,GR1 ;入力文字長-1 [ ( b ) ] JPL XERR ; 5けた以上? LAD GR1,-1,GR1 ; 1引く LAD GR0,0 ;初期値 P3 LAD GR1,1,GR1 ; 1加算 LD GR2,INBUF,GR1 ; 1文字取り出し CPA GR2,='0' ; '0'より小さい? JMI XERR [ ( c ) ] JPL XERR SUBA GR2,='0' ; '0'を引く SLA GR0,1 ; GR0を10倍する LD GR3,GR0 ; 〃 SLA GR0,2 ; 〃 ADDA GR0,GR3 ; 〃 [ ( d ) ] CPA GR1,LENG ; 全けた処理 JMI P3 RET XERR OUT ERMSG,LNG ;エラー出力 JUMP BEGIN XNULL LAD GR0,10000 RET INBUF DS 256 LENG DS 1 ERMSG DC '**ERROR**' LNG DC 9 END