問題タブ [mips32]
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.
string - MIPS アセンブリで文字列を逆にする
ユーザーに文字列の長さを要求し、その文字列にスペースを割り当ててから、逆に出力しようとしています。
私の人生では、なぜこれが機能しないのかわかりません..
「文字列」の長さは6になるはずですよね?+ 7 にするべきヌル終了文字
assembly - MIPS に 32 ビット以上を格納する
MIPS で値をレジスタに格納する (div 操作や mult 操作ではない) ことに多くの問題がありました。たとえば、5 バイトと 8 バイトのデータを格納または保持する必要があります。レジスタで 0x1235343036 (5 バイト) などの値を取得するにはどうすればよい$t3
ですか?
のように操作すると
レジスタ$t3
には 0x34000000 のみが含まれます。$t4
(12が失われました。レジスタで0x1234567812のようなものを取得するために「または」操作を行った後、0x1234000000のようなものが必要です$t3
。)
32 ビットより大きいレジスタが必要です。どうすればこれを達成できますか?
assembly - SPIMを使用して実行時間を測定する
アセンブリ言語で書かれたハノイの塔プログラムの実行時間を測定する必要があります。このタスクを実行するために使用される関数または特定のレジスタ値はありますか?
assembly - MIPS のレジスタに格納されているアドレスをロードする
私は回避できないように見える小さな問題を抱えています。次の方法でスタックにいくつかの数値が格納されています。
一度に 2 つの数値を比較して、スタックを走査したいと考えています。つまり、0($sp) を 4($sp) と比較し、次に 0($sp) を 8($sp) と比較し、...、そして 4($sp) と 8($ sp)。つまり、5 対 4、5 対 3、5 対 8、4 対 3、4 対 8、3 対 8 です。
これに対する私の試みは
主に1行目、2行目、5行目。スタックの一番上にある整数値を $t3 にロードし、スタック内の次の項目のアドレスを $t4 にロードしています。
次に、$t4 に格納されているアドレスに値をロードし、比較を行い (現在は印刷できるようにゼロに加算しています)、t4 に格納されているアドレスを 4 バイト増やして 3 番目の項目を取得します。スタックで。レジスタ値が 0 になるまでこれを続けます。これが発生したら、$sp を 4 ずつ増やして、プロセスを繰り返します。
これを PCSpim にロードしようとすると、常に構文エラーが発生します。私は何を間違っていますか?
assembly - 単純なforループ用のMIPSアセンブリ
このCコードをMIPSアセンブリに変換する必要があります。Cコードは次のとおりです。
これは私のMIPSアセンブリコードです。正しい翻訳ですか?間違いを見つけたら、私は本当に知りたいです。
c - MIPS アセンブリによる整数配列のインデックス付け
この C コードを MIPS に変換したかったのです。
C コード:
と と仮定しh > g
ますB[h-g] > 0
。h
、g
、f
は整数です。
また、f
が register $s0
、g
to $s1
、h
toに割り当てられているとし$s2
ます。
A
->$s6
とB
->のベースアドレス$s7
これが私の試みです:
assembly - このMIPSプログラムに問題があります
私の目標は、以下のCコードをMIPSアセンブリに変換することです。コードの重要な部分が欠落しているように感じます。誰かが私が間違っていることと、問題を解決するために私がしなければならないことを説明できますか?
Cコードは次のとおりです。
これまでの私のコードは次のとおりです。
assembly - データセグメントへの入力直後に出力を保存する
これは私のコードです:
サブルーチンを含むループがあります。subは($ v0 regで)'jr$ra'コマンドがフローをメイン関数に返すたびに保存したい出力を返します。データセグメントへの入力の直後にこれらの出力を保存する必要があります。どうすればこれを行うことができますか?それが1つの出力だけだった場合、私は言うことができます:
直後に保存されます。しかし、複数の出力があるので、一般的な方法でこれを行うにはどうすればよいですか?
assembly - MIPSで関数をテストできるように、ワード全体をレジスタにロードするにはどうすればよいですか?
文字列の長さ関数をmipsでテストしようとしています。「幸せ」などの言葉で試してみたいのですが……どうしたらいいのかわかりません。それを画面に印刷する方法も学ぶのは素晴らしいことです。
これは私のコードです: