問題タブ [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.
tree - ツリーとプレフィックス (ポーランド語) 表記について
私の MIPS アセンブリ クラスでは、未知のサイズの式を解析ツリーに読み込む必要がありました。私は木を扱う必要がなかったので、これが私が値を保存する方法でした:
ユーザーが式 1 + 3 - 4 を入力したとします (各オペランドは 1 から 9 の数字のみです)。
一番左の子ノードが開始点となり、2 つのデータが含まれます
これが私がツリーを構築した方法です。読み込む値がなくなるまで、オペランドから演算子、次のオペランド、次の演算子へとポイントします。
私の次のタスクは、ツリーを再帰的にトラバースし、値を中置/前置/後置記法で出力することでした。
ツリーの構築方法を考えると、中置トラバーサルは問題ありませんでした。
私はプレフィックスにこだわっています。まず、私はそれを完全に理解していません。
プレフィックスで式 (1 + 3 - 4) を出力すると、- + 1 3 4 になりますか? オンラインの例に従うのに問題があります。
また、私のツリーは適切に構築されていると思いますか? つまり、現在のノードから前のノードに移動する方法がないということは、常に左端の子ノードからトラバーサルを開始する必要があるということです。
助けてくれてありがとう。
mips - 第 2 のアセンブリ言語として MIPS を学習していますか?
私は x86 アセンブリを知っています (そして FPGA などで作業したことがあります)。RISC について書いたことはありません。MIPS のコースを受講する機会がありますが、忙しいので、私の質問は、ある意味では有益だとは思いますが、実際にはどのくらい有益なのでしょうか? (私は低レベルの熱狂者ですが、これは必須ですか?)
(私はmips-is-it-important を認識していますが、何らかの種類のアセンブリを既に知っているので、私の場合は少し異なると感じています)
ありがとう。
string - MIPS アセンブリの Pig Latin
私の MIPs アセンブリ プログラミング クラスでは、文字列を単純化されたピッグ ラテン語に変換するプログラムを作成する任務を負っています。
簡略化された豚ラテン語では、文字列内のすべての単語が少なくとも 2 文字の長さであり、すべての単語の最初の文字が最後にシフトされ、その後に「ay」が続くと想定されます。また、いかなる種類の句読点もないと仮定します。
つまり、「stackoverflow is great」は「tackoverfloway siay reatgay」になります。
私はこのプログラムを試してみましたが、ほぼ完了しています。何らかの理由で毎回最後の単語の途中で改行があることを除いて、それは正常に機能します。
例えば:
tackoverflowsay siay reat
ゲイ
それ以外の:
tackoverflowsay siay reatgay
プログラムの最後の終了部分でこの改行の原因を突き止めようとしましたが、わかりません。未熟なヌル終了文字列がありますか? もしそうなら、私はそれを見ません。
これが私のコードです:
assembly - MIPSレジスタ名をGAS(GNUアセンブラ)で使用することは可能ですか?
レジスタ名を使用すると、次のようになります。
$8
(の代わりに)レジスタ番号を使用する$t0
と、機能します。(私はbinutils 2.17を使用しています)。$0
$zero
loops - MIPS コードの破損
Computer Organizations クラスの MIPS コードに取り組んでいますが、MIPS を正しく動作させることができず、オンラインの MIPS リソースもそれほど多くありません。PCSPIM でコードを実行しています。このコードは、array2 の内容に 10 を加算し、それらを array1 に格納してから、配列 1 を出力することになっています。コードが修正され、適切に動作するようになりました。
PCSPIM は 0 を 5 回出力し、例外 7 [Bad data Address] が発生して無視を返します
gcc - gnu アセンブラ ディレクティブのドキュメント
私は現在 mips アセンブリを学ぼうとしています。そのために、私は非常に単純なCプログラムを書きました...
...そして、gcc の -S オプションを使用して mips マシンでコンパイルし、アセンブリ コードを生成します。メイン関数の先頭は次のようになります。
次に、 Gas のドキュメントを見て、これが何を意味するのかを理解しようとしましたが、これらのディレクティブは見つかりませんでした。それで、彼らはどういう意味ですか?詳細はどこで確認できますか?
assembly - MIPSの単語の個々のビットの状態にアクセスするにはどうすればよいですか?
プログラムを作成していますが、ビット3と6が設定されているかどうかを確認する必要があります。単語を回転したり、左右にシフトしたりできることを知っています。
しかし、どうすれば個々のビットの状態にアクセスできますか?and / xorのようなビット演算子を使用しますか?
assembly - 私の MIPS プログラムは正しいですか?
1 から 100 までのすべての偶数を生成して加算する MIPS プログラムを作成します。
- 少なくとも 1 つのループが必要です
- 合計をレジスタR12に格納する必要があります
そして、これは私が書いたものです:
これは正しいです?