• 締切済み

CASLIIで…

START IN N,LEN LD GR0,N SUBA GR0,='0' LAD GR1,1 TOP CPA GR1,GR0 JPL FIN ST GR1,LEN OUT STR,LEN ADDA GR1,=1 JUMP TOP FIN RET LEN DS 1 STR DC '**********' N DS 256 END ってのがありまして、Nが9以下の時は三角形が * ** *** : : ******** ********* と表示されるのですが、Nに10以上を入力すると 正しく表示されません 10以上でも表示されるようにするにはどうしたらいいですか?

みんなの回答

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.1

(a) IN N,LEN (b) LD GR0,N (c) SUBA GR0,='0' 入力値が '1'~'9' という数字1文字で与えられた場合は, 命令(a)において,ラベルNが指すのは'1'~'9'のいずれか1文字,ラベルLENが指すのは文字列長である1です。 命令(b)において,Nが指す1語をGR0にロードして, 命令(c)において,'1'~'9'という数字を 1~9という数値に変換しています。 入力値が '1'と'0' という数字2文字で与えられた場合は, 命令(a)において,N番地が指すのが'1',N+1番地が指すのが'0',LEN番地が指すのが文字列長である2です。 ですから質問者はN番地とN+1番地を順に読み出して,最終的にGR0に10という数値が格納されるような一連のプログラムを書けばよいわけです。