CASLIIで質問です

このQ&Aのポイント
  • 座席の管理表についての疑問
  • 副プログラムRESERVEのGR1とGR6の関係についての疑問
  • 副プログラムRESERVEのパラメータに関する疑問
回答を見る
  • ベストアンサー

CASLIIで質問です

 1 の連続するビットパターンに特化した検索を行う副プログラム BP1SRH を使用して,映画館の指定席を予約する副プログラム RESERVE です。 (1) 映画館の指定席は 1,024 席あり,座席番号は 0 ~ 1023 である。また,指定席は座席番号順に 16 席ごとにグループ化されている。指定席管理表は連続する 64 語からなり,先頭の語のビット番号 15 が座席番号 0 の状態を,末尾の語のビット番号 0 が座席番号 1023 の状態を表す。指定席管理表の対応するビットが 1 のとき空席を,0 のとき予約済を表す。 (2) 主プログラムは,予約すべき席数 n( 1 ≦ n ≦ 16 )を GR1 に,指定席管理表の開始アドレスを GR2 に設定して,RESERVE を呼ぶ。 (3) RESERVE は,指定された数の席を連続して,かつグループをまたがらないで確保する。座席番号 0 から順に空席を探し,見つかれば“予約済”の状態にして,確保された一番若い番号の座席番号を GR0 に設定し,主プログラムに戻る。確保できなければ,-1 を GR0 に設定して主プログラムに戻る。 (4) RESERVE から戻るとき,汎用レジスタ GR1 ~ GR7 の内容は元に戻す。 (5) BP1SRH に与えるパラメタは,次の形式とする。 (GR1)+0 検索対象語 (GR1)+1 N(連続する1ビットの個数;1≦N≦16) (行番号) 1 BPSRH START 2 RPUSH 3 LD GR6,1,GR1 4 LAD GR7,16 5 SUBA GR7,GR6 ; GR7 ←(16 - n) 6 LAD GR2,#8000 7 SRA GR2,-1,GR6 8 LD GR4,GR2 10 LAD GR0,-1 ; 戻り値の初期化 11 LAD GR3,0 ; 照合位置ポインタの初期化 12 LD GR5,0,GR1 13 LOOP LD GR6,GR5 ; GR6 は作業用として使用 14 AND GR6,GR4 15 CPL GR6,GR2 ; ビットパターンとの照合 16 JZE FIND 17 LAD GR3,1,GR3 ; 次の照合位置を設定 18 CPA GR3,GR7 ; 未照合部分が n ビット以上あるか? 19 JPL EXIT 20 21 JUMP LOOP 22 FIND LAD GR0,15 ; ビット番号の算出 23 SUBA GR0,GR3 24 EXIT RPOP 25 RET 26 END RESERVE START RPUSH 1 LD GR6,GR1 ; n の保存 2 LAD GR1,PARAM 3 ST GR6,1,GR1 ; BP1SRH 呼出しパラメタ準備 (1) 4 ST GR2,TBLADD ; 指定席管理表の開始アドレス保存 5 LAD GR4,64,GR2 6 LAD GR0,-1 ; 戻り値の初期化 LOOP 7 CPL GR2,GR4 ; 検索終了? 8 JZE EXIT 9 LD GR5,0,GR2 ; 指定席管理表から1語取出し 10 ST GR5,0,GR1 ; BP1SRH 呼出しパラメタ準備 (2) 11 CALL BP1SRH ; 1語中の空席を検索 12 CPA GR0,=-1 13 JNZ FIND 14 LAD GR2,1,GR2 ; 次の語を検索へ 15 JUMP LOOP FIND 16 LAD GR3,15 17 SUBA GR3,GR0 ; GR3 ←(15 - GR0) 18 LAD GR7,#8000 19 SRA GR7,-1,GR6 20 SRL GR7,0,GR3 21 XOR GR7,=#FFFF ; GR7 ← 1110000111111111(GR0=12,n=4 の場合) 22 AND GR5,GR7 ; 予約済に設定 23 ST GR5,0,GR2 24 SUBL GR2,TBLADD ; 座席番号の算出 25 SLL GR2,4 26 ADDA GR2,GR3 27 LD GR0,GR2 EXIT RPOP RET TBLADD DS 1 PARAM DS 2 ; BP1SRH 呼出し用パラメタ領域 END 質問はとりあえず3つです。 (一つ目) (1)の問題文で、64語の指定席管理表を作成すると書かれていますが指定座席管理表は副プログラムBP1SRHの対象の列と照合して、空席を検索するための対象となるものと理解しますが、64語が出てくる意味がわからないです。座席の数からして1024語ではないのでしょうか。 (二つ目) 副プログラムRESERVEの1行目に「LD GR6,GR1 ; N の保存」と書かれていますが、BP1SRH に与えるパラメタから判断するとNではなく、GR6に 検索対象語を入れるのではないでしょうか。 (三つ目) それと二行目と三行目の解釈の仕方がわかりませんでした。 2行目に関しては、PARAMのおいてあるアドレスをGR1に入れるということなのでしょうが、どのようなアドレスを入れるのでしょうか。 3行目は読み方はわかるのですが、右に書いてある添え字の意味が わかりませんでした。 2 LAD GR1,PARAM 3 ST GR6,1,GR1 ; BP1SRH 呼出しパラメタ準備 (1) かなり冗長になってしましましたがよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

正直文字だけでやるのは面倒なんですがなんとか。 問題文に |(5) BP1SRH に与えるパラメタは,次の形式とする。 |(GR1)+0 検索対象語 |(GR1)+1 N(連続する1ビットの個数;1≦N≦16) とありますが、このときの GR1 の値は PARAM の場所のアドレスになってますから、 PARAM +0 に検索対象語 PARAM +1 に N が格納された状態でBP1SRH を呼び出すということです。 で、 >添え字というのは1のことですか? |申し訳ありませんでした。添え字ではなく、横の解説文のことです。 |「BP1SRH 呼出しパラメタ準備 (1)」と書かれており、この場合ならば、 |Nを1+GR1に入れるということだと思いますがなぜNをGR1+1に入れる |とこのような表現を使うのかがわかりません。 この (1)は、「BP1SRH 呼出しパラメタ準備」 の 「その1」ですね。 ちょっと下に行ったところに |10 ST GR5,0,GR1 ; BP1SRH 呼出しパラメタ準備 (2) というのがありますが、(1) とこの(2) と両方やって BP1SRH を呼び出すための準備が完了します。 そして |11 CALL BP1SRH ; 1語中の空席を検索 ここで実際にBP1SRH という「サブルーチン」を呼び出しているというわけです。 ところが質問にあるプログラムでは |1 BPSRH START と |RESERVE START の二つだけで BP1SRH という名前のものがありません。 ひょっとしたらこの BPSRH は BP1SRH の入力間違いじゃないかと思うのですが。 話を PARAMにもどすと、これは |PARAM DS 2 ; BP1SRH 呼出し用パラメタ領域 の様に2語分用意されています。そして PARAM +--------+    | |「BP1SRH 呼出しパラメタ準備 (2)」でセットする部分    +--------+    | |「BP1SRH 呼出しパラメタ準備 (1)」でセットする部分    +--------+ 具体的な「数字」がどうか。という質問ですが、これは実行するときに決まるもので プログラムを書いているこの時点では気にする必要はありません。単にその場所に いずれは1000番地だとか2000番地という具体的な数字がつきますが、今は PARAM という名前で識別される場所という理解で良いと思います。 |2 LAD GR1,PARAM |3 ST GR6,1,GR1 ; BP1SRH 呼出しパラメタ準備 (1) 2行目で GR1 に PARAM というアドレスをセットして、 3行目で PARAM + 1 番地に GR6 の内容をセットしています。 あらためて元の質問に答えると (一つ目) #1の回答でOKでしょうか? (二つ目) |副プログラムRESERVEの1行目に「LD GR6,GR1 ; N の保存」と書かれていますが、 |BP1SRH に与えるパラメタから判断するとNではなく、GR6に |検索対象語を入れるのではないでしょうか。 このNというのはRESERVE を呼び出すときのパラメータで、GR1に格納された状態で RESERVEが実行されます。 |(2) 主プログラムは,予約すべき席数 n( 1 ≦ n ≦ 16 )を GR1 に, と問題文にあるとおりです。 そして、RESERVE からBP1SRH を呼び出すときは GR1 はPARAM で表されるアドレスになります。 また、主プログラムから渡された n は PARAM + 1番地に収めておきます。 GR6 は単なる作業用ですね。 (三つ目) |それと二行目と三行目の解釈の仕方がわかりませんでした。 |2行目に関しては、PARAMのおいてあるアドレスをGR1に入れるということなのでしょうが、 |どのようなアドレスを入れるのでしょうか。 |3行目は読み方はわかるのですが、右に書いてある添え字の意味がわかりませんでした。 |2 LAD GR1,PARAM |3 ST GR6,1,GR1 ; BP1SRH 呼出しパラメタ準備 (1) 前述したように、PARAMは実行時までに具体的なXXXX番地というのが決まりますが ここではどういうアドレスになるかということは気にしないでよいです(PARAMという 名前で区別や指示ができるというところだけ抑えておけばOK)。 もし可能なら、CASLシミュレーターとかで実際にプログラムを 動かしてみるといいと思うのですがどうでしょう?

rinnshan
質問者

お礼

>BPSRH は BP1SRH の入力間違いじゃないかと思うのですが。 恥ずかしながら、その通りです。 >具体的な「数字」がどうか。という質問ですが、これは実行するときに決まるものでプログラムを書いているこの時点では気にする必要はありません。単にその場所にいずれは1000番地だとか2000番地という具体的な数字がつきますが、今はPARAM という名前で識別される場所という理解で良いと思います。 なるほど、LAD命令が着たら、DS命令やパラメタ領域などの何かしらの領域が 与えられて場所がそこに決まると考えればよろしいのですね。 (一つ目) #1の回答でOKでしょうか? 申し遅れていてすみませんでした。大丈夫です。理解しました。 >もし可能なら、CASLシミュレーターとかで実際にプログラムを 動かしてみるといいと思うのですがどうでしょう? そうですね。何回か試したことがあるのですが、なぜか途中で止まってしまってできなかったです。ですが、その原因も粘り強く考えてできるだけお世話になる回数を減らして行こうと思っております。 見ず知らずの人間のためにこんな丁寧に回答していただいてありがとうございました。

その他の回答 (2)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

質問の趣旨はわかりました。 今は長い回答を書けないので、ちょっと時間をください。 あと、質問の1番目の何で64語しか確保してないのかという のは#1の回答で納得されましたか?

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

1つめは、一語辺り16ビットあるので、16×64で1024ビット。 席ひとつあたり1ビットあれば十分なのでこれでOKなわけです。 2つめは 11 CALL BP1SRH ; 1語中の空席を検索 これで呼び出しているサブルーチンが見当たらないのでなんとも。 多分どこかでGR1(最初はnが入っている)を壊しているので、あらかじめ GR6に「保存」しているということでしょう。 3つめは 2 LAD GR1,PARAM 3 ST GR6,1,GR1 ; BP1SRH 呼出しパラメタ準備 (1) どのようなアドレスって、PARAM の場所が GR1に入るはずですがどこがわからんのでしょうか? 添え字というのは1のことですか? GR1の値に1を加えた値をSTの対象アドレスにするということですね。 このくらいは参考書に説明がありそうなものですが、いったいどういう勉強のされ方をしているのですか?

rinnshan
質問者

補足

>どのようなアドレスって、PARAM の場所が GR1に入るはずですがどこがわからんのでしょうか? 参考書を読むと、LADは指定したところのアドレスが納入される命令と 書かれていました。しかし、このプログラムは行番号が書かれていないですし、具体的にどういった数字のアドレスがGR1に入るのかをお聞きしたかったです。 そもそも、この番地というのが参考書を読んでもよくわからなかったです。このプログラムには番地などは記載されていないので、何をGR1に入れればいいのかがわかりませんでした。 >これで呼び出しているサブルーチンが見当たらないのでなんとも。 sakusaker7さんがおっしゃっている、サブルーチンがどういうものか わからないのですが、私が解釈しているものは問題文に書かれているもの(下にコピペしたもの)であり、GR1をGR6にそのまま入れるならば、検索対象語が入るのであり、(GR1)+1に入っているNは入らないのではないかと思ったからです。 (5) BP1SRH に与えるパラメタは,次の形式とする。 (GR1)+0 検索対象語 (GR1)+1 N(連続する1ビットの個数;1≦N≦16) >添え字というのは1のことですか? 申し訳ありませんでした。添え字ではなく、横の解説文のことです。 「BP1SRH 呼出しパラメタ準備 (1)」と書かれており、この場合ならば、Nを1+GR1に入れるということだと思いますがなぜNをGR1+1に入れると このような表現を使うのかがわかりません。 >このくらいは参考書に説明がありそうなものですが、いったいどういう勉強のされ方をしているのですか? 申し訳ありません。私の理解力が乏しい上にプログラミングの経験が ありませんので参考書を読んでもいまいち理解できませんでした。 なので、とりあえず軌道がいくらずれてもいいので、読んでみるという スタイルをとり、わからなければ質問させていただくという形です。 なので、sakusaker7さんにとっては大変馬鹿馬鹿しい質問に思えたかもしれません。

関連するQ&A

  • CASLIIで質問です

    32 ビット符号なし 2 進整数と 15 ビット符号なし 2 進整数の乗算を行う副プログラム MULT32の一部です。 質問したいのは、↓のプログラムの中に出てくる「LD GR6,GR1」 という命令です。解説を見てみると意味は乗数をGR6に設定し、GR1は作業用に設定と書いてありました。 しかし、GR1はこのプログラム全体を見ても初登場ですし、GR6にはどのような内容を格納しているのかわかりません。また、なぜ初登場の領域に対して解放という言葉を使っているのでしょうか。 MULT32 START RPUSH LD GR5,0,GR2 ST GR5,H LD GR5,1,GR2 ST GR5,L LD GR5,=0 ST GR5,0,GR2 ST GR5,1,GR2 LAD GR3,15 LAD GR4,1 LD GR6,GR1     ←ここです。 LP LAD GR3,-1,GR3 LAD GR4,1,GR4 SLL GR6,1 JZE FIN

  • CASLII

    CASLII勉強中です。 ビットマップ図形の縮小の例題を解いているのですが、 07~09行目で第15ビット目が1であるか調べという意味がわかりません。 07.08.09行目の意味を教えてください。 07行目は何をしているのでしょうか?08.09行目は1行ではなく、なぜ 1ビットの判定となるのでしょうか? 01 ZUKEI01 START 02      LD   GR1,=0 03      LD   GR3,=0 04 LP1   LD   GR2,=0 05      LD   GR4,BIGZU,GR1 06      LD   GR5,=8 07 LP2   LD   GR4,GR4 08      JPL   SKIP 09      JZE   SKIP 10      LAD   GR2,1,GR2 11 SKIP   SLL   GR2,1 12      SLL   GR4,2 13      SUBA   GR5,=1 14      JPL   LP2 15      SLL   GR2,7 16      ST    GR2,SMLZU,GR3 17      LAD   GR3,1,GR3 18      LAD   GR1,2,GR1 19      CPA   GR1,N16 20      JNZ   LP1 21      RET 22 N16    DC   16 23 BIGZU   DC   #F00F,#F00F 24       DC   #781E,#781E 25       DC   #3C3C,#3C3C 26       DC   #1E78,#1E78 27       DC   #0FF0,#0FF0 28       DC   #0FF0,#0FF0 29       DC   #07FF,#03FF 30       DC   #01FF,#00FF 31 SMLZU   DS    8 32       END 33

  • CASLIIの問題が分かりません。

    資格の勉強のためCASLIIの参考書を買い問題を解いてるのですが分からないので質問します。 4桁の16進文字列を入力し、それを数値に変換してメモリ上に格納するプログラム。 SAMPL16 START LD GR1,0BUF LD GR0,=1000 CALL REVESUB OUT OBUF,LEN LET OBUF DS 4 LEN DC 1 ANS DS 1 END REVESUB START PUSH 0,GR1 PUSH 0,GR2 PUSH 0,GR3 PUSH 0,GR4 LAD GR0,0 LAD GR2,0 LOOP SLL GR0,4 ;ここまでの結果を4ビット左シフト LD GR3,0,GR1 ;1文字取り出し CPL GR3,='A' JMI NEXT ADDL GR3,=9 NEXT AND GR3,C000F ADDL GR0,GR3 LAD GR1,1,GR1 LAD GR2,1,GR2 CPL GR2,=4 JMI LOOP POP GR4 POP GR3 POP GR2 POP GR1 RET C000F DC #000F END SLL GR0,4 で4ビットシフトする意味がわかりません。あとLD GR3,0,GR1で1文字だけ取り出せるのですか?取り出すのは下位からですか?

  • 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以上でも表示されるようにするにはどうしたらいいですか?

  • CASLIIのFINについて教えて下さい

    CASLIIの『FIN』とはどんなときに使うのか、どんな意味があるのか教えて下さい。下の2個の例のように、JUMPでFINに飛んだり、単なるラベルであったりしています。 ;100を初めて超える7の倍数 LAD GR1,0 LOOP CPA GR1,C1000 JPL FIN LAD GR1,7,GR1 JUMP LOOP FIN ST GR1,ANS RET C100 DC 100 ANS DS 1 END ;1000を16ビットの2進数で表した時1が立っている数 LAD GR1,0 LAD GR2,1 LOOP LD GR3,C1000 AND GR3,GR2 JZE ZEXT LAD GR1,1,GR1 NEXT SLL GR2,1 JNZ LOOP FIN ST GR1,ANS RET C1000 DC 1000 ANS DS 1 END

  • CASLIIの問題

    次のプログラムに、 指定された整数値配列の中から最大値を調べるサブルーチンMAXを作成する、 指定された整数値配列の中から最小値を調べるサブルーチンMAXを作成する、 指定された整数値配列を昇順にソートするサブルーチンSORTを作成する、 指定された整数値配列の平均値(整数値)を調べるサブルーチンAVEを作成する、 これらについて教えてください。 PGM START LAD GR1, DATA LD GR2, =10 CALL SUM ST GR0, RESULT RET DATA DC 1,9,3,7,5,10,2,8,4,6 RESULT DS 1 END SUM START PUSH 0, GR1 PUSH 0, GR7 LD GR0, =0 LD GR7, =0 MAIN CPA GR7, GR2 JZE QUIT ADDA GR0, 0, GR1 LAD GR1, 1, GR1 LAD GR7, 1, GR7 JUMP MAIN QUIT POP GR7 POP GR1 RET END GR1はデータの先頭番地、SUMをコールするとGR1が1ずつ加算されてデータが参照できる。 GR2はデータの個数、ラベルMAINで個数を比較している。 などのことはわかるのですが、 プログラムを作るとなるとまったくわかりません。 どなたか教えていただけませんか?? お願いします!!

  • CASLII(以前の問題について)

    次のプログラムに、 指定された整数値配列の平均値(整数値)を調べるサブルーチンAVEを作成する、 という問題で、手も足もでないということで以前に質問させていただきました。 丁寧な回答をいただいたのですが、それとは別に、AVEを作ってみました。 ところが、どこかが間違っているらしく、うまく動きません。 それどころか、だらだらと長くなってしまい、自分自身でも途中からわからなくなってしまいました。。 このたどたどしいプログラムの修正と、解説をどなたか回答していただけませんでしょうか?? あと、上記のSUMがコールされたあとのGR0の役割、 SUM内おけるGR0、GR7の役割、 SUM内においてGR1、GR7をPUSH、POPする理由、 サブルーチンSUMの機能を教えてください。 お願いいたします!! 元からあるプログラム PGM START LAD GR1, DATA LD GR2, =10 CALL SUM ST GR0, RESULT RET DATA DC 1,9,3,7,5,10,2,8,4,6 RESULT DS 1 END SUM START PUSH 0, GR1 PUSH 0, GR7 LD GR0, =0 LD GR7, =0 MAIN CPA GR7, GR2 JZE QUIT ADDA GR0, 0, GR1 LAD GR1, 1, GR1 LAD GR7, 1, GR7 JUMP MAIN QUIT POP GR7 POP GR1 RET END 自分が作成したAVEのプログラム PGM START LAD GR1,DATA LD GR2,=10 LD GR0,=100 LD GR6,=6 LD GR5,GR6 CALL AVE ST GR0,RESULT RET DATA DC 1,9,3,7,5,10,2,8,4,6 RESULT DS 1 END SUM START PUSH 0,GR1 PUSH 0,GR7 LD GR0,=0 LD GR7,=0 MAIN CPA GR7,GR2 JZE QUIT ADDA GR0,0,GR1 LAD GR1,1,GR1 LAD GR7,7,GR7 LAD GR6,6,GR6 JUMP MAIN QUIT POP GR7 POP GR1 CALL AVE RET END AVE START PUSH 0,GR6 LD GR3,=0 CPA GR0,GR6 JMI AQUIT SHIFT CPA GR0,GR6 JMI STEP SLA GR6,1 JUMP SHIFT STEP SRA GR6,1 STEP1 CPA GR0,GR6 JMI STEP2 SLA GR3,1 SUBA GR0,GR6 ADDA GR3,=1 JUMP STEP3 STEP2 SLA GR3,1 STEP3 SRA GR6,1 CPA GR6,GR5 JMI AQUIT CPA GR0,=0 JZE AQUIT JUMP STEP1 AQUIT POP GR6 RET END

  • CASLの問題なんですが…。

    このプログラム、動きはするのに終了してくれません。どうすれば良いでしょうか。 電話番号テーブル(名前18文字、電話番号12文字を対にして格納。全て半角)から指定された名前を検索し、名前と電話番号を表示するプログラムです。 SEARCH START BEGIN LD GR0,SPACE LAD GR1,0 LOOP1 ST GR0,INBUF,GR1 LAD GR1,1,GR1 CPA GR1,C18 JNZ LOOP1 INPUT IN INBUF,LENG LAD GR0,47 CPL GR0,INBUF JZE FIN LAD GR0,0 ST GR0,FLAG LAD GR2,TABLE LOOP2 ST GR2,POINT LAD GR0,47 CPL GR0,0,GR2 JZE LAST LAD GR1,0 LOOP3 LAD GR0,42 CPL GR0,INBUF,GR1 JZE FOUND LD GR0,INBUF,GR1 CPL GR0,0,GR2 JNZ TNXT LAD GR1,1,GR1 LAD GR2,1,GR2 CPA GR1,C18 JNZ LOOP3 FOUND LAD GR0,1 ST GR0,FLAG CALL DIS TNXT LD GR2,POINT LAD GR2,30,GR2 JUMP LOOP2 LAST LAD GR0,1 CPA GR0,FLAG JZE BEGIN OUT NFIND,C10 JUMP BEGIN FIN RET DIS LAD GR3,0 LD GR0,POINT LOOP4 LD GR0,0,GR1 ST GR0,OBUF,GR3 LAD GR3,1,GR3 CPA GR3,C30 JZE EXIT1 LAD GR1,1,GR1 JUMP LOOP4 EXIT1 OUT OBUF,C30 RET POINT DS 1 TABLE DC 'ヤマダ タロウ 0123-456-789' DC '/' INBUF DS 80 LENG DS 1 OBUF DS 80 SPACE DC #0020 C10 DC 10 C18 DC 18 C30 DC 30 NFIND DC '該当者なし' FLAG DS 1 END

  • サブルーチンでの加算

    CASLIIの課題で、 主プログラムで、連続したN語の領域に格納されているデータの先頭番地をサブルーチンに渡し、サブルーチンでデータを加算し、主プログラムのANS番地に格納するプログラムを作成しなさい。 という問題が出ました。 サブルーチンでの加算法がよくわかりません。 どなたかご教示ください。 MAIN     START LAD GR0,TBL ST GR0,PARA LAD GR1,1 LD GR0,N ST GR0,PARA,GR1 LAD GR1,PARA CALL  SUBR ST GR0,ANS RET TBL DC 1,2,3,4,5,6,7,8,9,10 N DC 10 PARA DS 2 ANS DS 1 END

  • CASL2の問題について教えて下さい。

    CASL2を勉強したばかりで、いろいろ調べても分からず、下記の問題が解けなくて困っています。 どなたかお分かりの方いらっしゃいましたら教えて下さい。 よろしくお願いいたします。 下記のプログラムを実行すると、ANS番地からの6語に、以下のようなビットパターンが格納される。 ANS番地+0番地 0111111111111111 ANS番地+1番地 1111101111111111 ANS番地+2番地 1111111110111111 ANS番地+3番地 1111111111110111 ANS番地+4番地 1111111111111101 ANS番地+5番地 1111111111111110 このとき、(1)~(6)の空欄に適切な命令コードやオペランドを入れて、プログラムを完成させよ。 START LAD GR0,1 LAD GR1,1 LD GR2,LEN LOOP SUBA GR2,=1 JMI FIN LD (1) (2) GR3,WK ST (3) SLL GR0,0,GR1 LAD (4) JUMP LOOP FIN RET ANS DS 6 LEN DC (5) WK DC (6) END

専門家に質問してみよう