問題タブ [stack-pointer]
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 - C コードを MIPS アセンブリに変換 - 再帰を使用した組み合わせ関数
C コードを組み合わせ関数 (nCr) の MIPS アセンブリ コードに変換する際に問題があります。
nCr = (n-1Cr-1) + (n-1Cr)
n に int 5、r (数字データ) に 3 を入力すると、結果は 10 になります。
再帰とスタック ポインタを使用したいのですが、スタック オーバーフローでエラーが発生します。
以下に MIPS コードを示します。
コードの何が問題になっていますか?
問題がよくわからない…
c - スタック ポインタ アドレスの定義者
C スタートアップ コードを使用するマイクロコントローラーと組み込みシステムに関して言えば、C スタートアップ コードの機能の 1 つは、スタック ポインターを初期化することです。
この初期スタック ポインタ アドレスと C スタートアップ コードは、一般にチップ ベンダによって定義および提供されていますか?
それとも、C スタートアップ コードを手動で変更または作成し、スタック ポインターを指定するのは、ファームウェア/ソフトウェア開発者としての私たち次第ですか? この部分は私を混乱させます。
assembly - esp がスタックの一番上を指している場合、ebp はどこを指していますか?
esp
およびebp
レジスタの使用方法を理解するのに苦労しています。
なぜそうするのですか:
すべての関数の開始時に?ebp
初めて押された時に持っているのは何?
c - C でローカルに定義された変数の割り当てを解除する
次のコードがあるとします。
foo() が返される前に、C でランタイム スタックからバッファの割り当てを解除する (アセンブリでesp、100を追加するのに似ている) (できれば移植可能な) 方法はありますか?