[解決済み] ESPレジスタとEBPレジスタとは何ですか?
2022-03-04 01:44:47
質問
ESP レジスタは現在のスタックポインタ、EBP は現在のスタックフレームのベースポインタであることがわかりました。しかし、私はこれらの定義を理解していません(私はアセンブラでコーディングする方法を学び始めたばかりです)。
私が理解しているのは、ESPはスタックそのものを指し、EBPはスタックの一番上にあるものを指すということです。 1 . しかし、これらは私の推測に過ぎず、間違っている可能性が高いです。そうでなければ、次のような文は何を意味するのでしょうか?
MOV EBP, ESP
脚注1:編集部注:はい、不正解です。 標準的な用語では、ESPはスタックフレームの最下位アドレスですが、quot;top of the stack"はESPが指す場所です。 これは、x86のコールスタック(ほとんどのISAと同様)が下向きに成長するにもかかわらず、上向きに成長するスタックデータ構造との類似によるものです。
解決するには?
espはスタックポインターで、ebpはスタックフレームのためにあり、関数に入ったときにebpがその時点でespのコピーを取得できるようにしたもので、その前にスタック上にあったもの、リターンアドレス、パラメータで渡されたもの、その他その関数に対してグローバルなもの(ローカル変数)は、その関数の間スタックフレームポインターから静的に離れた距離になります。espは今やコンパイラが望むように自由に動き回り、他の関数へのネストのときに使用できます(それぞれが自然にebpを保つ必要がある)。
コンパイラのデバッグを容易にし、コンパイラが生成するコードの理解を容易にしますが、他の汎用レジスタを燃やすことになります。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Nasmエラー:オペコードとオペランドの無効な組み合わせ
-
[解決済み】MIPSで整数の絶対値?
-
[解決済み] 着信側セーブレジスタ、発信側セーブレジスタとは何ですか?
-
[解決済み] アセンブリで値をnullに設定する
-
[解決済み] アセンブリでは、`PTR`は何の略ですか?
-
[解決済み] x86-64におけるmovqとmovabsqの違いについて
-
[解決済み] 8086アセンブリ言語での2つのレジスタのスワッピング(16ビット)
-
[解決済み] cmovlオペコードの中で何と何が比較されるのですか?
-
[解決済み] 未解決のシンボルが残る コードコンポーザースタジオ
-
[解決済み] この状況でのlwとbneは何を意味するのか?