問題タブ [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.
gcc - インラインインテル構文からインラインgccへ
私のスニペットを、gcc に似たインライン asm 構文を使用するコンパイラに変換しようとしています。ドキュメントを読みましたが、次の行に遭遇するまではすべて問題ありませんでした。
私はそれを次のように変換しました:
fs は 32 ビット レジスタではなく、この操作は無効であることがわかりました。at&t 構文で fs にアクセスするにはどうすればよいですか?
assembly - オフセットとして16ビットレジスタを使用した実効アドレス計算
次のコードを使用して、ebxの下位2バイトを上位2バイトに「格納」し、下位bxを「プール」へのオフセットにアクセスするための一時変数として使用しようとします。最後に、データを右にシフトして、元の値(元々は下位2バイトのみを使用)を復元します。
これはnasmで問題なく組み立てられますが、エラーが発生します
適合するように切り捨てられた再配置:`.data'に対するR_386_16
リンクするとき。このエラーを回避する方法について何かアドバイスはありますか?文字通りすべてのレジスタがespを保存し、セグメントレジスタが使用されているため、単に別のレジスタを使用することはできません。
編集:誰かが尋ねると思いますので、32ビットアセンブリを使用しています
optimization - NASMプリフェッチ
NASM ドキュメントで以下の手順に出くわしましたが、それらの表と裏を完全に作成することはできません。悲しいことに、これらの手順に関するインテルのドキュメントもやや不足しています。
特定のアドレスに256バイトをキャッシュするなど、命令の簡潔な例を誰かが提供できますか? 前もって感謝します!
c - Intel x86 から ARM アセンブリへの変換
私は現在、ARM
アセンブリ言語を学んでいます。
そのために、一部x86 code (AT&T Syntax)
を ARM アセンブリ(Intel Syntax)
コードに変換しようとしています。
このドキュメントから、x86 ではヒープ構造のチャンク 1 が 0x0804c000 から始まることがわかりました。しかし、で同じことをしようとするとarm
、次のエラーが発生します。
問題は、ARMが32ビット命令しかロードできないことだと思います。
前の質問から、メモリ間接アドレッシングがどのように機能するかを知っています。
以下に書かれたスニペットは同じ仕事をしていますか?
私は使っているARMv7 Processor rev 4 (v7l)
assembly - x86 AT&T 構文アセンブリのコメント構文
Intel 構文には、セミコロンを使用したコメントがあります。AT&T に切り替えたとき、実際にコメントを解釈しようとしました。
AT&T アセンブリのコメント構文は何ですか?
assembly - x86-64 Intel rel8 即値オペランドの構文?
x86-64 での JMP の最初の形式は次のとおりです。
たとえば、JMP rel8=-2
ですeb fe
。 fe
1 バイトの符号付き 2s-compliment -2 です。
Intel 構文でこの rel8 即時を表現するにはどうすればよいですか?
私は次のことを試しました:
test.s:
コンパイル:
しかし、私は得る:
eb fe
希望どおりではありません。
(より一般的には、Intel の構文はどこに文書化されていますか? Intel のマニュアルでそれについて何も見つけることができませんでした。Intel のマニュアルではオペランドをエンコードする方法について説明していますが、アセンブリ言語の構文については説明していません。)
アップデート:
解決策は次のとおりです。
.
現在の命令のアドレスを表す必要があります。それを組み立てて分解すると、次のようになります。
eb fe
望んだ通りに。RIP 相対アドレッシングは次の命令に関するものであるため、アセンブラは現在の命令のサイズを調整する必要があります。
assembly - Intel 構文を使用した GNU アセンブラーでの位置独立アドレッシング
x86-64 で、GNU アセンブラーをintel 構文で使用するときに、位置に依存しない方法 (PIC および PIE 互換) で .data セクションからアドレスをロードするにはどうすればよいですか?
たとえば、AT&T 構文を使用すると、次のことができます。
Intel 構文に相当するものはありますか? 検索エンジンを使っても答えが見つからないようです...
違いが生じる場合に備えて、実際にnoprefix
はインテル構文のバージョンを使用しています。
ありがとう