問題タブ [intel-syntax]

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 投票する
1 に答える
181 参照

gcc - objdump のアセンブリ エンコーディングが異なるのはなぜですか?

位置に依存しないコードに関するこの記事を読んでいて、この関数のアセンブリ リストに遭遇しました。

ただし、私のマシン (gcc-7.3.0、Ubuntu 18.04 x86_64) では、以下のようにわずかに異なる結果が得られました。

mov私が見つけた主な違いは、命令のセマンティクスです。上のリストではmov ebp,esp実際に に移動espしますebpが、下のリストでmov %esp,%ebpは同じことを行いますが、オペランドの順序が異なります。

手書きのアセンブリをコーディングしなければならない場合でも、これはかなり混乱します。要約すると、私の質問は、(1) 同じ命令に対して異なるアセンブリ表現を取得した理由、および (2) アセンブリ コードを記述するときに (たとえば を使用して) どちらを使用する必要があるかです__asm(:::);