問題タブ [mips]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - lw は C または C++ でどのように表されますか?
たとえば、次のようになります。
lw $t1, 0($t0)
また
lw $t2, 8($t0)
C または C++ に変換しますか? つまり、アドレスからレジスタにワードをロードしているということです。配列も同様の概念ですか、それとも何ですか?
前もって感謝します。
assembly - MIPSで浮動小数点レジスタの値を汎用レジスタに移動する方法は?
以下に示すように、 MARSシミュレーターで実行される次の MIPS アセンブリがあります。
この時点で、必要な浮動小数点値は にありますが$f0
、値を に移動する必要がありますx
。浮動小数点レジスタの内容を に転送できれば$f0
、$t0
これを実行できます。これは可能ですか?そうでない場合、回避策は何ですか?
assembly - MIPSInt配列を印刷する効率的な方法
私はMIPSに書いたCプログラムを翻訳する宿題に取り組んでいます。私の質問は一般的なMIPSコーディングについてであり、プロジェクト固有の問題ではありません。出力の印刷で問題が発生しました。私はそのように宣言された配列と出力文字列を持っています:
データを出力しようとしているので、次の形式になっています。
配列はハードコーディングされており、配列の長さは事前に決定されています。効率よく印刷するためのループを考えてみましたがlw
、レジスターを使ってオフセットを処理するのが問題でした。
出力をハードコーディングするために次のコードを考え出しましたが、印刷する必要のある別の配列がまだあります。これは、かなりのスペースを占めているようです。私のコードは完全に機能していますが、それはただの混乱です!誰かがそれをクリーンアップ/リファクタリングするためのヒントを教えてもらえますか?
配列はに格納され$a0/$s0
、配列サイズはに格納されます$a1/$s1
これは宿題のプロジェクトであり、配列を印刷するためのよりクリーンな方法を完全に理解したいと思っています。盗用するつもりはありません。ループを書くためのヒントは大歓迎です。私はコードを教えてくれる人を探していません。
linux - mips gnu をコンパイルするにはどうすればよいですか?
スレッドのタイトルが正しいかどうかさえわかりません。これが私の話です。wdtv live の新しいファームウェアを確認するために、western digital の Web サイトにアクセスしました。wdtv live OS のソースコードがダウンロードできることがわかりました。http://support.wdc.com/product/download.asp?groupid=1003&lang=enで「WDTV GPL コード」をダウンロードしました。私はそれを抽出して...思いついた
これらの 2 つのアーカイブについてググったところ、"mips-4.3.tgz" はオペレーティング システムで、"linux_kernel_2.6.22.19-19.tgz" は明らかに Linux カーネルであると推測されます。
私の理解では、Linux カーネルをコンパイルするには、Linux を実行する必要があります。だから、どうにかして mips-4.3.tgz をインストールする必要があると思います。
mips のインストール方法を知っている人はいますか??
assembly - ラベルへの分岐
私は単純な電卓用の MIPS コードを書いていますが、ユーザー入力に従って対応する関数にどのように分岐するのか疑問に思っていました。たとえば、ユーザーが 2 つの数値を加算したい場合、電卓がおそらく乗算または減算ではなく、加算ラベルにジャンプするようにするにはどうすればよいでしょうか?
assembly - MIPS アセンブリの整数問題
ユーザーに整数を入力するように求める場合に MIPS アセンブリを使用すると、その整数を取得して必要な部分に分割するにはどうすればよいですか?
例:
次に、$v0 の値を $t0 などの一時レジスタに格納し、それを構成する各部分に分割する必要があります。したがって、308 は 3、0、および 8 に分割する必要があります。これを行う必要があるのは、これらの各部分を 2 乗して足し合わせることができるようにするためです。
ユーザーからの入力値は、整数として入力する必要があります。
ありがとう、nmr
assembly - MIPSプログラム!助けが必要です - 私がそれを正しく行っているかどうかわかりません
端末から入力できる 10 個の 1 桁の数字 (正、ゼロ、または負) のセットを調べる MIPS プログラムを作成しようとしています。数値を調べた後、負の数値 (適切な符号付き) とそのカウントのみを端末に出力する必要があります。
以下は私のMIPSプログラムです
assembly - MIPS アセンブリ課題 HELP!
私の親友は EE コースを受講しています (私は彼の最後の希望です : /)、私は約 7 年前から Java の知識を持っていますが、彼の(概要) 最新の EE プログラミングの割り当ては、MIPS アセンブリを使用して次のことを行うことです。 :
2 つの正の整数 (m と n) を取り、計算するプログラムを作成します。
どちらの整数もゼロより大きい必要があります。R タイプの算術命令 (add、mult、sub) は使用できません。代わりに、他の命令を使用して関数のコードを記述します???? 「あなたのプログラムは、ユーザーがゼロを入力するまで、各計算の後、m と n の新しい値を取得し続ける必要があります。これでプログラムは終了します。」
私は彼の以前の割り当てのいずれにもアクセスできず、(add、mult、sub) を使用せずに最初からアセンブリ言語に飛び込もうとしてもうまくいきません。
ece.ucdavis.edu/~vojin/CLASSES/EEC70/W2001/pr4.pdf 教授は UC Davis で教えていたときから ols の課題を使用しているようでした。
//edit これは問題の C++ バージョンです。代入の基本をすべてカバーしているわけではありませんが、出発点です。
入力
c++ - C++ CPU レジスタの使用
C++ では、ローカル変数は常にスタックに割り当てられます。スタックは、アプリケーションが占有できる許容メモリの一部です。そのメモリは RAM に保持されます (ディスクにスワップアウトされていない場合)。では、C++ コンパイラは常にローカル変数をスタックに格納するアセンブラ コードを作成するのでしょうか?
たとえば、次の単純なコードを見てください。
MIPS アセンブラー コードでは、これは次のようになります。
ご覧のとおり、n に対してスタックをまったく使用する必要はありませんでした。C++ コンパイラはそれを認識し、CPU のレジスタを直接使用しますか?
編集:うわー、あなたのほぼ即時かつ広範な回答に感謝します! return ++n;
もちろん、 foo の関数本体はではなくであるべきですreturn n++;
。:)