• 締切済み

CASLの問題です。

arataの回答

  • arata
  • ベストアンサー率49% (139/279)
回答No.1

CASLのような仮想言語の場合、実際のニーモニックを憶えていないので、ちゃんとしたコーディングで答える事ができませんが、 単純な方法は、掛ける回数だけ足す。 高等な方法は、2の何乗かを調べて、シフト命令を使って、その分の計算を行い、足りない分は加算する。 例えば、6×5の場合、 □6を5回加算する □5は、2の2乗+1なので、6を2ビットレフトシフトして(6×4)、から6を1回加算します。 といった方法を使うと思います。

ayagon
質問者

補足

あのぉ、ロジックはどのようなものになりますか? 情報処理技術者試験程度の答えをお願いします。 レポートなんですが全く、手がつけれないのです。 よろしくお願いします。

関連するQ&A

  • CASLでこんな練習問題を。

    CASL初めてです。教えてください。 定数(56と27)を確保しその和をGR1に その差をGR2に求めよ。 です。 ロジックと解説をお願いします。

  • CASL(アセンブラ言語)に関する問題です!

    100,98,94,86,70,38・・・ と、2の倍々で減っていく階差数列の和が初めて負になる項を求めるプログラムをアセンブラ言語で組みたいのですが組み方がわかりません。 ヒントだけでも頂けるとありがたいです!

  • casl 2の問題

    この問題の13番からがわかりません。 わかる方は教えてください。 出来れば解説もお願いしたいです

  • CASLの問題

    CASLの問題で分からないものがあるので質問させてもらいます。 1からNまでの数値の合計を求める処理について、 CASL言語を用いてプログラムを書け。 といった問題です。まだ始めたばかりでよく分からないので 教えてもらえないでしょうか? あとCASLはあまり実用性がないと聞きましたが本当なのでしょうか? よろしくお願いします。

  • 基本情報技術者試験ではCASL2を選ぶと良いですか

    基本情報技術者試験の午後の試験では、 C、Java、COBOL、アセンブラ言語(CASL2)、表計算の中から 一つを選ばなければならないのですが、 アセンブラ言語(CASL2)を選ぶのが、 受験生にとって、一番負担が少なくてすむのでしょうか。

  • CASLとCASL2の違いについて

    はじめまして。情報科学を勉強している大学生です。 お時間ございましたら、回答のほどよろしくお願いします。 現在、Pascal→CASL2のコンパイラの作成という課題に取り組んでいます。 意味解析まで終わって、アセンブラ言語に変換するとこまで来たのですが、先生の言っていた言葉の意味がよくわからず困っています。 「CASL2はCASLと違って、スタックポインタがGR4から独立したから、(コンパイラを作る際に)ちょっとした工夫が必要になる」 といった感じのことを言っていたのですが、具体的になぜ工夫が必要なのかわかりません。 理解している友達にも聞いたんですが、いまいちわかりませんでした。 webでもいろいろ調べたんですが、説明しているサイトが見つからず八方塞の状況です。 そこで、 「具体的になぜ、どのような工夫がいるのか」 を教えていただきたく思います。参考になるページを紹介していただけるだけでも結構です。 それでは、よろしくお願いします。

  • CASL アセンブラ命令 アプリ機能

    例えば、CASLのアセンブラ命令にDCがある。 LABER DC 100 とすると。 これは、メモリに領域を確保し100をいれる命令だが、プログラムが変更されれば、メモリアドレスは変更される。 CASLには機械語命令・マクロ命令・アセンブラ命令がある。 機械語命令は人に分かりやすいようにニーモニックが付けられているだけだが、 アセンブラ命令はプログラムが変更されればそのアドレスは移動するという、ハンドアセンブリでは、できない機能が含まれている。 アセンブリ言語は色々ありますが、アセンブラ言語は人に見やすいようにニーモニックが付けられているだけでなく、CASLのDC命令のように、ハンドアセンブリではできないアドレスの自動変更のようなアプリケーションとしての機能(OS的機能)も一般にふくまれているとかんがえてよいのでしょうか? よろしく願います。

  • CASL(CASL2)でこんな問題があります。ぜひ教えてください。

    ・以下のプログラムを実行したときに,ANS0番地からANS6番地までの各番地に格納される値を16桁の2進数で答えよ。本プログラムのNUM番地からの7語には,それぞれ数値として格納されているものとする。 LAD GR1,O LOOP CPA GR1,LEN    JZE FIN LD GR2,NUM,GR1 LD GR0,CHAR,GR2 ST GR0,ANS0,GR1 LAD GR1,1,GR1 JUMP LOOP FIN RET NUM DC 1,3,5,6,4,2,0 LEN DC 7 CHAR DC'ABCDEFGHIJ' ANS0 DS1 ANS1 DS1 ANS2 DS1 ANS3 DS1 ANS4 DS1 ANS5 DS1 ANS6 DS1 END ・以下のプログラムを実行したときに,ANS番地に格納される値を,4桁の16進数で答えよ。本プログラムはNUM番地からの3語には,222が文字列として格納されているものにする。 START LAD GR0,0 LAD GR1,0 LOOP CPA GR1,CNT JZE NEXT LD GR2,NUM,GR1 AND GR2,COOOF ADDA GR0,GR2 LAD GR1,1,GR1 JUMP LOOP NEXT LD GR3,GR0 SLA GR3,7 ST GR3,WK1 SRA GR3,3 ST GR3,WK2 SRA GR3,1 ST GR3,WK3 SRA GR3,1 ST GR3,WK4 LD GR3,WK1 SUBA GR3,WK2 SUBA GR3,WK3 SUBA GR3,WK4 ST GR3,ANS RET NUM DC '222' CNT DC 3 C000F DC #000F WK1 DS 1 WK2 DS 1 WK3 DS 1 WK4 DS 1 ANS DS 1 END ・以下のプログラムを実行すると,ANS番地からの5語に,以下のような ビットパターンが格納される。 ANS+0番地 1000000000000000 ANS+1番地 0000000010000000 ANS+2番地 0000000000001000 ANS+3番地 0000000000000010 ANS+4番地 0000000000000001 このとき,(1)~(6)の空欄に適切な命令コードやオペランドを入れて, プログラムを完成させよ。 START   LAD  GRO,1   LAD  GR1,1 ((1)) GR2,LEN LOOP SUBA  GR2,=1   ((2)) FIN    ST  ((3))    SLL  ((4))       SLA  GR1,1    JUMP LOOP FIN  RET ANS  ((5))5 LEN  ((6))5    END ・20文字以内の文字列Sを入力し,Sの末尾にある文字※の個数だけ 文字#をSの先頭に追加し,かつSの末尾にある文字※を削除した文字列 Rを出力する。 入力する文字S CASLII※※※※ 出力する文字R ####CASLII こんな質問で非常にもし分けないのですが… 自分なりに色々考えましたが,どうもうまく行きません。 ご指導よろしくお願いします。 わかる範囲で構いませんのでロジックと解説をお願いします。

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

    資格の勉強のためCASLIIを勉強しているのですが、問題がわからなく質問します。 ●10進数1000を16ビットの2進数で表現した時、その値の中に1が何個含まれているかを求め、その結果をメモリに格納するプログラムを作成せよ。 SAMPL  START ; 1が立っている数 LAD GR1,0 LAD GR2,1 LOOP LD GR3,C1000 AND GR3,GR2 ;1が立っているか調べる JZE NEXT ;1が立っていない場合ジャンプ LAD GR1,1,GR1 ;1を加算 NEXT SLL GR2,1 ;1ビットを左にずらす JNZ LOOP ;繰り返し ST GR1,ANS RET C1000 DC 1000 ANS DS 1 END このプログラムでAND GR3,GR2 の部分からよくわからなく、コメントの「1が立っているか調べる」とありますが、1が立っているとはどういう意味なんでしょうか?それ以降から理解できなく、解説をお願いします。

  • この問題お願いします。

    下記の問題解る方教えて下さい。 私には全く解りません。 出来れば解説付きで宜しくお願いします。 (1)   (2) (3) (4) (5) (6)   (7) 上のH型の(1)~(7)に1~9の数字のうち、7つを入れること。 入れる条件は、縦と横のそれぞれ3つの数字の積(かけ算)が 同じになること。 つまり(1)×(3)×(6)=(3)×(4)×(5)=(2)×(5)×(7)となる。 もちろん、1~9の数字は重ねて使えないので、数字は2つ余る。