• ベストアンサー

基本情報技術H21問12アセンブラ設問2

基本情報技術H21問12(アセンブラ)において問1は理解できたつもりなのですが、設問2がよく理解できません。 選択肢が限られているのでコメントから判断して回答は推測できるのですが、よく理解できないのが、 ”積(A)の上位語と積(B)の下位語を加算”の部分です。 乗数下位語の積Aの下位語と乗数上位語の積Bの上位後はオーバーフローするからいらないという事ですか?でも積(A)の下位語はオーバーフローしないしな~と頭がこんがらがっています。 誰か教えて下さいお願いします!!

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

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

プログラム2は,被乗数32bit×乗数32bit=結果32bitのプログラム。 しかし本来,32bit×32bitの結果の最大長は64bitになるはずですよね。 以降,説明のためにビットの配置を次のように表記します。 被乗数32bit長を次の記号で表して, SSSSSSSSSSSSSSSS TTTTTTTTTTTTTTTT 乗数32bit長を次の記号で表し, UUUUUUUUUUUUUUUU VVVVVVVVVVVVVVVV 本来の乗算結果:64bit長を次の記号で表してみる。 WWWWWWWWWWWWWWWW XXXXXXXXXXXXXXXX YYYYYYYYYYYYYYYY ZZZZZZZZZZZZZZZZ (ただしこの出題では,話を単純にするために,結果は32bitで収まる,積のオーバフローは考慮しない,すなわちWとXはすべてゼロになるという前提条件になっています) ---------------------------------------- (以下,メモ帳などにCopy&Pasteして等幅フォントで読んでいただくとよろしいかと) さて。 プログラム2は,CALL MULS でプログラム1を呼び出すのだけれど,プログラム1は乗数として16bit長しか扱えない。 つまり, 1回目の CALL MULS で行っている計算は,  SSSSSSSSSSSSSSSS TTTTTTTTTTTTTTTT …被乗数 ×________________ VVVVVVVVVVVVVVVV …乗数下位語 -----------------------------------  YYYYYYYYYYYYYYYY ZZZZZZZZZZZZZZZZ …積(A) (本来,積は48bit長だが,前提条件よりXはオールゼロ) 2回目の CALL MULS で行っている計算は,  SSSSSSSSSSSSSSSS TTTTTTTTTTTTTTTT …被乗数 ×________________ UUUUUUUUUUUUUUUU …乗数上位語 -----------------------------------  XXXXXXXXXXXXXXXX YYYYYYYYYYYYYYYY …積(B) (本来,積は48bit長だが,前提条件よりWはオールゼロ) よって,プログラム2で最終的に求めたい乗算結果は,   ________________ YYYYYYYYYYYYYYYY ZZZZZZZZZZZZZZZZ + XXXXXXXXXXXXXXXX YYYYYYYYYYYYYYYY となり,上段のY(積(A)の上位語)と 下段のY(積(B)の下位語)を加算する必要があります。 ---------------------------------------- ちなみに。 積(B)の上位語(XXXXXXXXXXXXXXXX)は前提条件よりオールゼロになるのは前述のとおり。

hiyoxtuko
質問者

お礼

有難うございます!! 記号(図)で書いて頂いたのをみて少し悩んだもののわかりました~~ ご回答頂いたように表現すれば非常に判り易いですね!! 見事に硬い脳でも理解できました。勉強になりました。 >よって,プログラム2で最終的に求めたい乗算結果は, >  ________________ YYYYYYYYYYYYYYYY ZZZZZZZZZZZZZZZZ >+ XXXXXXXXXXXXXXXX YYYYYYYYYYYYYYYY の部分のイメージが出来ていなかったのだと思います すっきりした~!! 本当に有難う御座いました。

関連するQ&A

  • 先日の基本情報技術者試験の細かい配点を教えて!!

    2014年4月20日に実施された基本情報の午後試験の中の 問 1の設問 3 a 問 3の設問 1 問 3の設問 3 問 6の設問 2 e 問 7の設問 1 b 問 7の設問 2 f 問 8の設問 1 b 問 8の設問 3 f 問12の設問 1 b の各配点を知りたいのです。予想配点を お聞かせください。

  • 基本情報処理技術者試験 

    下記の問題の説明がどうしても理解出来ませんので、ご教授いただけますと幸いです。 https://www.fe-siken.com/kakomon/15_aki/q6.html この問題では8ビットのデータの下位7ビットを取り出したいので、最上位ビット以外を「1」としたビット列「0111 1111」との論理積をとることで下位7ビットを取り出すことができます。  ⇒ どういう並びの数字(XXXX XXXX)が、「0111 1111 」と論理積を取って、下7桁を抽出する事が出来るのでしょうか? 理解出来ていないので、質問内容自体がおかしいかもしれません。 よろしくお願い致します。

  • 基本情報のCASLIIの平成18年春の問13

    基本情報のCASLIIの平成18年春の問13の問題です。 32ビットの2進数(被乗数)と15ビットの符号なし二進数(乗数)の乗算を行うプログラムなのですが、解説を読んでもわからない点があったので質問させていただきます。 32ビットの被乗数の方は上位16ビットと下位16ビットにそれぞれGR1,GR0に分けて格納しています。 ここで、GR1,GR0をGR3ビットだけ論理左シフトします。そうすると、上位16ビットの左端からGR3ビットはみ出します。解説のここまでは理解できたのですが、次からの文章が理解できませんでした。 「シフト前の下位(16-GR3)ビットがシフト後の上位(16-GR3)ビットとして残る。したがって下位語の上位GR3ビットを(16-GR3)ビット,つまりGR4ビット論理右シフトして,上位語の下位GR3ビットに転送する必要がある。」 というものです。 シフト前の下位(16-GR3)ビットというのはどこのことを指しているのか不明ですし、シフト後の上位(16-GR3)ビットも同様です。 また、なぜGR4ビット論理右シフトするとなぜ上位語に反映されるのかもわかりません。右シフトすれば上位語も右シフトされて反映下位から上位へビットが転送されないと思うからです。 ちなみに、GR3+GR4=16という関係を持っています。 それと、解説の画像は添付しておきます。

  • 基本情報技術者 午後試験の配点について

    私は次の日曜日に実施される基本情報技術者試験に向けて勉強しているのですが、午前試験は良いのですが午後試験は高得点というわけにはいかず、得意分野と高配点の問8と問9に焦点を絞り、残った時間で少しずつ得点しようと考えております。 そこで疑問に思ったのですが、午後試験の配点は、問ごとに各12点、20点としか記載されていないのです。それでは、小問ごとの配点はどうなっているのでしょうか? 例えば、問1には設問1.2.・・・とあります。さらに設問1のa,b,設問2のc,d,などとなっています。つまり、私が知りたいのはaの配点、bの配点、cの配点、dの配点・・・というものです。 他にも、複数回答は完答かどうか、など。 分からないと過去問をやっても点数が分からないと思うのですが・・・・。 どなたかご存知の方がいらっしゃいましたら、どうか教えて頂きたいです。

  • 基本情報処理試験H22年秋期午後について

    基本情報処理試験の過去問について質問です。 H22年度秋期の午後試験〔問8〕の設問2の空欄gが 今日一日やったのですが、理解できません。 〔問8〕の空欄g N=7は2進数で0111です。 Rの下位5ビット 01110 1回目 ビット:10 なので 減算 2回目 ビット:11 なので 何もせず 3回目 ビット:11 なので 何もせず 4回目 ビット:01 なので 加算 ここまでは、プログラム2をトレースしてわかります。 解説書によると、以下ですが、何が「つまり」なのか? 計算式がどうして導き出せるのかがわかりませんでした。 ----------------------------------------  つまり次のように計算しています。 M×7=M×(-1+8)=M×(-2^0+2^3)  以上のことから、正解はアです。 -------------------------------------- 過去問URL http://情報処理試験.jp/FE22b-pm/t08.html よろしくお願い致します。

  • 基本情報 H8 問15、16について

    こんにちは、2010年10月の基本情報技術者試験を受験して 午後試験で 50.50点だったものです。 趣味でプログラミングをしていて、 Java で以下のサイトを参考にして、同様のゲームを作り、 http://www.crew.sfc.keio.ac.jp/~turkey/packman/ JavaScript でポーカーを再現するくらいです。 現在 暇な時間をみて、7月の同試験の受験に向けて勉強しているのですが、 わからないことが出てきましたので、質問させていただきます。 以下のサイトをみていただきたいのですが・・・ http://www.rs.kagu.tus.ac.jp/~infoserv/j-siken/H8a2/af15.html http://www.rs.kagu.tus.ac.jp/~infoserv/j-siken/H8a2/af16.html (a)  問15については設問4を間違えてしまったのですが、  (正解はアのところを、ウと答えてしまいました)  ステップ4でファイルYに出力する際、  目的の処理はマスタファイルの更新ですので、  「出力区分1」のレコードだけを出力しているのでしょうか?  あるいは、すでに「出力区分」では整列済みですので、  整列キーは「営業所コード」のみでよい、ということでしょうか。 (b)  問16についてなのですが、設問2を間違えてしまいました。  (b,c-イ、キ のところ、 エ、キ と答えてしまいました。)  宛先作成モジュールのところで、  「売上伝票の終わりまで (1) 」という実行条件だったので、  設問のところでは、必要ないのかなと思ってしまいました。  もし、顧客処理のところで (1) の条件がない場合、  どのような不具合が生じるのでしょうか? もしよければ、教えていただけないでしょうか? よろしくお願いします。

  • 基本情報技術者試験(FE)についてです。

    基本情報技術者試験(FE)についてです。 午前も午後も合格点は60点で間違いないですよね。 午前問題は1問=1.25点であるから、単純に48問正解を目指せばいいわけですよね。これは50:10:20の出題比率が変わることはないですかね? で、午後問題は選択式になっていますが、例えば問1~7のうち5問で60点を取れば、問8、問9~13が0点でも合格となりますか? これは極端な例として、まあ、そんなことは逆に難しいとは思いますが、ITパスポートのように分野別の最低基準点のようなものは存在しないのかという質問です。 それと午後問題の配点方法が実際のところよくわからないのですが、各問の設問がすべて正解でなくても、個々の設問(aとかbとか)の正解に対して点はもらえるという認識でよいですか? また、選択式である午後問題(問9~13など)は複数の問に答えを書いても、結局どれか1問しか採点されないんですよね。ということは試験対策として自分の得意分野だけ勉強しておけばいいということにもなりますか? 例えばプログラムの問題にはいっさい手をつけず、表計算の勉強だけしておくというのもひとつの手でしょうか?

  • 最初のアセンブラ

    人間がハンドアセンブル際にアセンブリ言語と機械語の対応表を見比べて翻訳する作業を、コンピュータの黎明期に機械語で最初に作られたアセンブラはどのように行っていたのかということを教えて下さい。 プログラミング言語の歴史を考えてみると、(フォン・ノイマン型)コンピュータの黎明期では全てのプログラムは最初人間が直接真空管やディップスイッチのオン/オフを切り替えることで、機械語でプログラムを入力していたと思います。その後アセンブラが開発されたことで、人間はパンチカードやカセットテープなどを通してアセンブリ言語でプログラミングを行えるようになったと聞きました。 アセンブリ言語は機械語と1対1で結びついたもので、アセンブラはアセンブリ言語を機械語に翻訳するのだと言うことは分かります。しかし、パンチカードやカセットテープで入力したアセンブリ言語も、コンピュータにとっては根本的には0/1(スイッチのオン/オフ)という点では変わりはなく、最初のアセンブラはその0/1をどのようにして正しい機械語の0/1に変換することが出来たのでしょうか? 少し質問の意味が分かりにくいかもしれませんが、例えば MOV B, A //Bレジスタの内容をAレジスタに送る といったアセンブリ言語は、機械語では 01000000 に相当するかもしれません。しかしコンピュータがパンチカードを読み込んだ時点では 01010100 といった信号として入力されるとしたら、機械語で最初にアセンブラを作成した人はどのようにしてそれを適切な機械語(ここでは01000000)に翻訳出来たのでしょうか? 想像では最初に機械語で非常に超簡単なアセンブラの原型とも言えるプログラムを作って、それを元にした簡単なアセンブリ言語(の原型)でより高度なアセンブラを作る、といったことを繰り返していまのアセンブラが開発されていったと思いますが、では最初のアセンブラの原型とはメモリ上ではどのように実現されていたのか、ということが気になったので質問させていただきました。アセンブリ言語で実際にプログラムのイメージはこんな感じでは?ということを書いて下さっても構いません。 よろしくお願い致します。

  • 基本情報 過去問 h23 特別 午後 問2について

    こんにちは。 2011年7月の基本情報特別試験の問題について 質問させていただきます。 まずは、以下のサイトを見ていただきたいのですが・・・ http://www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2011h23_1/2011h23tokubetsu_fe_pm_qs.pdf 問2の設問1についてなのですが、bについて、 各プロセスのターンアラウンドタイムは Aが320 , Bが210 , Cが130 , Dが70 ,の合計730 平均が182.5ということでよいのでしょうか? どなたか、教えていただけないでしょうか? よろしくお願いします。

  • 基本情報処理試験H22年秋期午後について

    基本情報処理試験の過去問について質問です。 H22年度秋期の午後試験〔問8〕のプログラムが読めずに困っています。 問題には二つの値の積を求めるとあるのですが、 プログラム2については何をしているのか理解できません。 数値を代入して追っていくと、積は求める事ができるのですが、内容を理解したいと考えています。 このプログラムを解読できる方、アドバイスお願いします。 過去問URL http://情報処理試験.jp/FE22b-pm/t08.html

専門家に質問してみよう