問題タブ [step-into]

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.

0 投票する
0 に答える
30 参照

assembly - インラインアセンブリはどのようにして再帰関数の最後まで直接スキップしますか?

これは私が取り組んでいるコードの一部です。

EBX (最大値 6) は 6 から始まります。

CALL HPSTART 行をステップオーバーしている間、次のステートメント ポインターが hpstart に戻り、EBX が 1 である最後の再帰呼び出しまですべてを実行し続け、最初の関数呼び出しまでバックトラックを開始することを期待していました (私はしませんでした)。関数の残りの部分は含めないでください)。

代わりに、すべての再帰呼び出しを即座に実行し (EBX は正しく 1 に設定され、値は配列に正しく出力されました)、次の行 (MOV EAX、EAX) に直接進みました。

そこで何が起こった?コンパイルされたコードは、実行前に再帰呼び出しを計算しますか?

これは、ビジュアル スタジオの _asm で行われます