• ベストアンサー

CASLIIでLADやSTなどの命令の読み方がよくわからない

LD GR6,GR1 LAD GR1,PARAM(8045番地にある) ST GR6,1,GR1 GR1は4という内容、PARAMは8045番地にあるとします。 ST命令ならば、GR6の内容を(1+GR1)へ入れると読むのでしょうが、 「8046番地に入れる」と読むのでしょうか。 しかし、8046番地にはEND命令があり、わけがわからないです。 まだ、CASLIIの初心者であり、読みなれていません。 よろしくお願いします。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10261)
回答No.1

「読み方」というのは「発音の仕方」ではなくて「意味をわかる」という意味でしょうか? ということであれば、 >「8046番地に入れる」と読むのでしょうか。 そういう意味です。 8045番地には何とかいてありますか?おそらく、DS で、オペランドが2以上。DSの意味を調べましょう。

rinnshan
質問者

お礼

ありがとうございました。 なるほど、DSで領域を確保してその中に入れているのですね。 やっと意味がわかりました。

関連するQ&A

  • CASLII LAD命令 解らない箇所があります。(初歩)

    下記問題について解らない箇所があるのですが、そのプロセスを教えて頂ければ幸いです。 宜しく御願いします。 アドレス8007番地の、GR1 が解りません。 シュミレータで確認すると、#0015 となりますが、そのプロセスを教えて下さい。 ------------------------------------------------ GR1とGR3を16進数でトレースしなさい。 OSHIETE  START   8000  LAD  GR1,A 8002  LAD  GR1,#800C 8004  LAD  GR3,V2 8006  LD  GR1,GR3 8007  LAD  GR1,A,GR3 8009  RET   800A  V2  DC  2 800B  A  DC  #1111 800C  B  DC  #2222 800D  C  DC  #3333       END ------------------------------------------------ オペランドを矢印表記にします↓ OSHIETE  START   8000  LAD  GR1←A        (GR1 = #800B)  (GR3 = #????) 8002  LAD  GR1←#800C      (GR1 = #800C)  (GR3 = #????) 8004  LAD  GR3←V2        (GR1 = #800C)  (GR3 = #800A) 8006  LD  GR1←GR3        (GR1 = #800A)  (GR3 = #800A) 8007  LAD  GR1←A + GR3      (GR1 = #0015)  (GR3 = #800A) 8009  RET   800A  V2  DC  2 800B  A  DC  #1111 800C  B  DC  #2222 800D  C  DC  #3333       END

  • 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で質問です

    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を情報の時間に習ったのですが、さっぱり意味が分かりません。 CASLIIの命令、オペランドが表している意味を詳しく解説願います。 カテゴリ間違っていたらごめんなさい! 論理演算プログラム   ラベル    命令     オペランド REI1003   START             LD       GR1,DATA1          OR       GR1,DATA2          LD       GR1,DATA1          AND      GR1,DATA2          LD       GR1,DATA1 XOR GR1,DATA2 RET DATA1 DC #5AOF DATA2 DC #FOFO END 解答お願いします!!><

  • 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の穴埋め問題について。

    CASLIIの勉強をしているのですが穴埋めの問題がどうしても解けません。 参考書の例題やサイトで公開されてるサンプルなどと比較して考えて 自分なりに答えは出してみたのですがシュミレータを試してみた所間違ってました。 この問題を考え始めてからもう一週間になりますが 解答がないので未だに解けず時間ばかりが過ぎて困っています。 解答と解説を教えて頂けないでしょうか? 問題 図1のプログラムは、3種の文字「a」、「b」、「c」を組み合わせた、 長さが3の全ての文字列を、図2の順に出力する。 図1の(1)~(10)の空欄に適切なオペランドを入れてください。 図1 REP2 START LD (1) LAD GR1,0 LP1 CPA GR1,GR7 JZE (2) LD GR0,CHAR,GR1 ST (3) LAD GR2,0 LP2 CPA GR2,GR7 JZE (4) LD GR0,CHAR,GR2 ST (5) LAD GR3,0 LP3 CPA GR3,GR7 JZE (6) LD GR0,CHAR,GR3 ST (7) OUT (8) LAD GR3,1,GR3 JUMP LP3 BRK3 LAD GR2,1,GR2 JUMP LP2 BRK2 LAD GR1,1,GR1 JUMP LP1 BRK RET FIRST DS 1 SECOND DS 1 THIRD DS 1 CHAR DC (9) LEN DC (10) END 図2 aaa aab aac aba abb abc aca acb acc baa bab bac bba bbb bbc bca bcb bcc caa cab cac cba cbb cbc cca ccb ccc

  • CASLIIのADDAとADDLの演算

    次の問題があっているのかわかりません。 次のCASLIIプログラムの実行後のレジスタ(GR1,FR)とメモリ(AA,BB,CC番地) の内容を16進表示および符号付き10進表示せよ。 PGM START LD GR1,AA ADDA GR1,BB ST GR1,CC RET AA DC 32767 BB DC 1 CC DS 1 END 32767をGR1に入れて、1加算する。 だからGR1 = 32768 と思ったのですが、先生の書いた答えは -32768 でした。 PGM START LD GR1,AA ADDL GR1,BB ST GR1,CC RET AA DC #7FFF BB DC 1 CC DS 1 END #7FFFに1加算するので GR1=#8000 だと思います。 また自分で書いた板書に Arithmetic[ -32768, 32767](#8000,#7FFF) Logical[0,65535](#0000,#FFFF) とありました。 板書をとったのがだいぶ前なのでこれの意味をよく覚えていないのですが、 ADDA命令のときに扱える値の範囲は-32768,~32767 ADDL命令のときに扱える値の範囲は0~65535 ということなのでしょうか。 その場合、先ほどの問題のADDAの問題で 32767 + 1 をしたら範囲を超えてしまいます。 このような場合どうなるのでしょうか? ADDLの場合も範囲を超えてしまったらどうなるのですか? よろしくお願いします。

  • CASLIIの問題で、わからないものがあるので解き方と回答を教えていた

    CASLIIの問題で、わからないものがあるので解き方と回答を教えていただきたいです。 入力された整数を辺の長さ(文字数)とする正方形を、文字*で出力する。 例) **** * * * * **** ↑辺の長さが4のときの正方形です。 REP3 START IN REC,LEN LD GR1,REC (a) GR1,MSK ST (b) LAD GR1,-1,GR1 ST GR1,POS OUT LN1,LEN LOOP LAD (c) CPA GR1,=0 (d) FIN CPA GR1,=1 JMI SKIP LD GR0,LN2 LD GR2,POS ST (e) OUT LN2,LEN JUMP LOOP SKIP OUT LN1,LEN FIN RET REC DS 256 LEN DS 1 POS DS 1 MSK DC #000F LN1 DC (f) LN2 DC '* ' END (a)~(f)が答えの入る場所です。 答だけでもいいので、ご教示願います。

  • サブルーチンでの加算

    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

専門家に質問してみよう