シンプルな機能を持つシンプルなプログラムを逆アセンブルしようとしています。このプログラムは32ビットx86ターゲット用にgccでコンパイルされています。 関数は呼び出し命令経由で呼び出されます。 関数の最後にはret命令がありますが、それは正常ですが、leave命令もあります。プログラムはどこにでも入力命令はありません。 私はleaveとretの違い
0
A
答えて
1
ままに....この休暇の機能を何疑問に思って:スタック領域を残し 。 このままにしておくと入力できます。したがって、Enter stack areaによる研究者が解放されます。
のRet: 手順から戻ります。 Retはプロシージャの実行を終了し、呼び出し元のプログラムに制御の流れを転送します。 Retにはオプションのオペランドがあります。リターンアドレスがスタックから取り出された後に、スタック上で削除したいバイト数を示します。
1
類似しているが、等しくない。 最初に読み取る Enter vs Push
入力: 、スタック領域の予約。 "Enter"を押すと、スタックの特定のメモリ領域が予約されます。これはパラメータの受け渡しに必要です。 operandという語は、スタックに割り当てるバイト数を指定します。 Byteoperandは、現在のプロシージャのネストを表します。 Byteオペランド0の場合、EBPはスタックに配置されます。その後、ESPの値はEBPにコピーされ、ESPはワードオペランドによって減分されます。
関連する問題
- 1. 私のLeave Request Historyの更新が間違っています
- 2. ng-enterとng-leaveのアニメーションスタッキングビュー
- 3. LLVM 'ret'の指示
- 4. RETは、アセンブリ
- 5. SIGSEGV、セグメンテーションフォールト「RET」
- 6. touchesmoved leave frame
- 7. ReactCSSTransitionGroup leave no Effect
- 8. Datagridview textbox leaveイベント
- 9. socket.io join/leave
- 10. angular2 google map markerマウスenterとleaveのイベント
- 11. アセンブリ内のRETの意味
- 12. RET APIへのGETリクエスト
- 13. HubotメッセージのみOn/Leave
- 14. ng-leaveクラスが適用されない
- 15. Fabric.js、手動トリガーマウス:enter/leave、mouse:move
- 16. プログラムをトレースしているときにretオペコードの起点を知る方法
- 17. EmacsでC-RETにコマンドをバインドする
- 18. Delphi XE7マルチデバイスSQLエラーTIMESTAMP Ret。フィールド
- 19. プロパティタイプCONDOをRETから取得
- 20. LeaveでNumericUpDownをリフレッシュする方法
- 21. Leave&ObservableフィルタでAngular2アニメーションを実行
- 22. コンパイルエラー:computeFramesオプションでJSR/RETがサポートされない
- 23. Tkinter <enter>と<leave>イベントが正しく機能しない
- 24. {!!の違い!!}と{{}}
- 25. 「 '」と「'」の違い
- 26. 違いダウンケースとダウンケースの違い! Rubyで
- 27. 私は `ret 'するとセグメンテーションを取得するのはなぜですか? (FASM)
- 28. Open GL ES - GLenumとGlintの違いとGLintとGLsizeiの違い
- 29. pthread_cond_timedwaitのRETを22しかし、errnoが成功
- 30. 8085のRET命令に必要なマシンサイクル数?
ありがとうございますが、私の機能には入力命令はありません。しかし、関数 "push ebp"と "mov%esp、%ebp"のトップが表示されます。それらの2行は、入力と同等かもしれませんか? – Bob5421