• ベストアンサー

コンピュータアーキテクチャ

写真の左のCプログラムの断片をコンパイルした結果、右のMIPSアセンブリプログラムが得られるとします。 空欄に入る命令を教えて欲しいです (sraのような) お手数をおかけしますがよろしくお願いします

この投稿のマルチメディアは削除されているためご覧いただけません。

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

  • ベストアンサー
  • _kappe_
  • ベストアンサー率68% (1525/2219)
回答No.1

学校か何かの課題っぽい質問については、答えそのものを書かないようにしています。 MIPSには乗算命令もありますが、この問題では別の答えを要求しているようです。 a*10の計算を((a*4)+a)*2のように変型すればちょうど空欄を埋めるようにできます。4倍するのは2ビット左シフトでできます。乗算命令がなかった時代のCPUではよく使われた手法です。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • コンピュータアーキテクチャ

    写真の左のCプログラムの断片をコンパイルした結果、右のMIPSアセンブリプログラムが得られるとします。 空欄に入る命令を教えて欲しいです お手数をおかけしますがよろしくお願いします

  • コンピュータアーキテクチャ

    写真の左のCプログラムの断片をコンパイルした結果、右のMIPSアセンブリプログラムが得られるとします。 空欄に入る命令を答える問題です 空欄の自分の答えが合っているかどうかを知りたいです 答え andi $24,$28,6 間違っている場合は正しい答えを知りたいです

  • コンピュータアーティテクチャ

    写真の左のCプログラムの断片をコンパイルした結果、右のMIPSアセンブリプログラムが得られるとします。 (7)の空欄に入る命令を教えて欲しいです お手数をおかけしますがよろしくお願いします

  • コンピュータアーティテクチャ

    写真の左のCプログラムの断片をコンパイルした結果、右のMIPSアセンブリプログラムが得られるとします。 空欄に入る命令を教えて欲しいです

  • コンピュータアーティテクチャ

    写真の左のCプログラムの断片をコンパイルした結果、右のMIPSアセンブリプログラムが得られるとします。 (6)の空欄に入る命令を教えて欲しいです

  • アセンブリプログラムの問題です。

    アセンブリプログラムの勉強をしているのですが、以下の問題がわかりません。 (1) 変数f, g, h, i, j はCのプログラム内で32ビットの整数として宣言されているものとする。 以下のCのステートメントをMIPSのアセンブリコードで表せ。 また、f, g, h, i, j の値がそれぞれ1, 2, 3, 4, 5 であるならば最終的なfの値はいくつか。 a. f = g + f + i ; b. f = g + (h + 2); (2) 変数f, g, h, i, jはそれぞれ$s0, $s1, $s2, $s3, $s4に割り当てるられているものとする。また、配列AとBのベースアドレスは、それぞれレジスタ$s6 と$s7 に割り当てられているものとする。 次のCのステートメントをMIPSのアセンブリコードで表せ。 a. f = g + h + B[4] ; b. f = g - A[ B[4] ] ; c. f = -g + h + B[1] ; d. f = A[ B[g] + 1 ] ; (3) (2)の設定において、次のMIPSのステートメントをCのステートメントで表せ。 また、可能ならばこのMIPSアセンブリコードを同じ機能を果たしながらMIPS命令の数が最小になるように書き直せ。 a. add $s0, $s0, $s1 add $s0, $s0, $s2 add $s0, $s0, $s3 add $s0, $s0, $s4 b. lw $s0, 4($s6) 以上です。わかるものだけでも良いので教えてもらえますでしょうか?

  • 算術シフトと論理シフトの違いは?

    「コンピュータはなぜ動くのか 知っておきたいハードウエア&ソフトウエアの基礎知識」書籍内のP61のところにある「表3.1 Z80 CPUの主な命令」の表の「演算命令」の欄に 「SLA:算術左シフトをする」 「SRA:算術右シフトをする」 「SRL:論理右シフトをする」 というのがあるのですが、この「算術シフト」と「論理シフト」はどう違うのでしょうか? 「シフト」と言うと 「データを右にずらす。」 「データを左にずらす。」 というイメージがあるのですが、これと似たようなものなんでしょうか? わかりやすく教えてください。できればわかりやすい「例え」で教えてくれたほうが幸いです。 よろしくお願いいたします。

  • オブジェクトファイルのファイルフォーマット

    オブジェクトファイルのファイルフォーマット ELF/DWARF2形式について調べています。 C言語で作ったプログラムをコンパイルし生成されるオブジェクトファイルをバイナリエディタで開き、アセンブリ言語と比較すると、オブジェクトファイルの最初と最後にプログラムの内容(命令)と直接関係ないものが含まれていることが分かりました。 例えば、オブジェクトファイルのある場所や、コンパイルされた日時などです。(これらの情報はテキストだったので判別ができました。) インターネットで調べたところ、生成されたオブジェクトファイルがELF/DWARF2形式とうフォーマットで作られているというところまでは分かりました。 実際のオブジェクトファイルのヘッダとフッタ(命令の前後)を除いて、純粋な機械語(命令)の部分を取り出したいのですが、このELF/DWARF2形式というフォーマットでは、どうすれば、純粋な機械語の始まりと終わりを読み取ることができるでしょうか? よろしくお願いいたします。

  • コンパイルの逆はできますか??

    プログラムの本にこんなことが書いてありました。 『人間にわかる文字をコンパイルして、CPUのわかる0101にします。』 これを見て思ったのですが、CPUのわかる0101文字を逆に人間にわかる文字に返すことは出来ますか?? 他にも、JavaやCで書いた命令をコンパイルし、CPUのわかる0101文字にしてから逆にコンパイルして、JavaをCに変えたり、CをJavaに変えたりできるってことですか??

  • ショートカットアイコンの絵が戻ってしまいます。

    デスクトップにヤフー天気のショートカットのアイコン(写真:左)を作成しているのですが Cドライブのプログラムに何かしらのファイルをインストールすると 必ずこのようなアイコン(写真:右)に戻ってしまいます。 先ほど“マイクロソフトオフィシャルスタンダード2007”をインストールしたのですがやはりこのアイコン(写真:右)に戻ってしまします。 この前は“スカイプ”をインストールしたのですがインストールし終わるとまた戻ってしまいます(写真:右)。 どのような原因が考えられるのでしょうか? よろしくお願いします。