- ベストアンサー
CASLIIの解説
- CASLIIとは、コンピュータのプログラミング言語の一つです。
- このプログラムは、10進数の「5×20」の結果を求め、その結果をメモリに格納するものです。
- さまざまな数に置き換えても掛け算が行えるプログラムとなっています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
次のように行番号をつけてみました。 1: LAD GR1,0 2: LAD GR2,1 3: LD GR3,=5 4:LOOP LD GR4,C20 5: AND GR4,GR2 6: JZE NEXT 7: ADDA GR1,GR3 8:NEXT SLA GR3,1 9: SLL GR2,1 10: JNZ LOOP 11: ST GR1,ANS CASLのレジスタは16bit長ですが,桁数が長くてめんどうなので8bit幅として解説します。 a)2行・9行より,GR2はループのたび次のように変化する。 00000001 → 00000010 → 00000100 → …… つまり,ビット1が最下位(右端)から左へと1bitずつ移動していく。 b)4行・5行より,GR4には(20)10 = (00010100)2 がセットされ,前述のGR2とのANDがとられる。つまり,GR4内のビット列を右端から左へと1bitずつ調べて,その位置が1か0か判定している。 c)3行・8行より,GR3はループのたび次のように2倍される。 (5)10 → (10)10 → (20)10 → …… d)よって7行目で解答格納領域(GR1)に加算される値は次のとおり。 1回目:GR4=0001010零 なので 5は加算しない 2回目:GR4=000101零0 なので 10は加算しない 3回目:GR4=00010壱00 なので GR1に(20)加算 4回目:GR4=0001零100 なので 40は加算しない 5回目:GR4=000壱0100 なので GR1に(80)加算 6回目:GR4=00零10100 なので 160は加算しない 7回目:GR4=0零010100 なので 320は加算しない 8回目:GR4=零0010100 なので 640は加算しない 11行目でANSに格納される値は(20)+(80)=(100)です。
お礼
ありがとうございます。 とてもわかりやすかったです(泣