問題タブ [inline-assembly]

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

c - x86 インライン アセンブラ フラグ

ばかげた質問ですが、gcc で必要なフラグが見つかりません。基本的に、C プログラムに次のインライン アセンブラ コードがあります。

コンパイル時に、次のようなエラー メッセージが表示されます: [timings Error: invalid char '[' beginning operand 2]'`

昔、x86 インライン アセンブリであることをコンパイラに伝える何らかのフラグを使用したことを思い出しました。しかし、オンラインで見つけることができません。誰かが私が使用しなければならないフラグを教えてもらえますか?

どうもありがとう!

0 投票する
3 に答える
1132 参照

c - コンテキスト切り替えのための gcc インライン アセンブリ

m68k プロセッサ用の gcc を使用してコンテキスト スイッチを実装しようとしています。すべてのレジスタ d0、d1...d7 および a0、...a7 を保存するには、インライン アセンブリを使用する必要があります。レジスタごとに別のコード行を書く代わりに、これらのレジスタを保存できるインライン gcc でループを使用できるかどうか疑問に思っていました。

たとえば。

move.l %d0、一時 pcb.cpuregs.d0 = 一時

ループカウンターのようにd0内を0にしたい。

0 投票する
3 に答える
2369 参照

gcc - GCCの拡張バージョンのasm

組み立ての質問を投稿するとは思ってもみませんでした。:-)

GCCには、asm関数の拡張バージョンがあります。この関数は、アセンブリコード、出力リスト、入力リスト、上書きリストの4つのパラメーターを取ることができます。

私の質問は、上書きリストのレジスタがゼロになっているのですか?以前にそこにあった値(実行中の他のコードから)はどうなりますか。

更新:これまでの私の答えを検討する際に(ありがとう!)、レジスターはclobber-listにリストされていますが、(私のインスタンスでは)pop(popl)コマンドで使用されていることを追加したいと思います。他の参照はありません。

0 投票する
1 に答える
1061 参照

iphone - iphone dev : インライン asm の問題

その種の問題を扱うさまざまなトピックを読みましたが、まだ答えがありません。ここに私の問題があります:

私のヘッダーファイルには、これがあります:

私のプロジェクト設定で、これらの次のオプションが リンクテキストにチェックされていることを確認しました

しかし、コンソールエラーがあります:

{標準入力}:242:選択されたプロセッサはサポートしていません -- smull r0,r1,r2,r3' {standard input}:244:unshifted register required --orr r0,r0,r1,lsl#20'

私たちを手伝ってくれますか ?

0 投票する
7 に答える
2116 参照

assembly - インライン アセンブリでより高速に実装される単純な C 関数の例は何ですか?

インライン アセンブリを使用してコンパイラを打ち負かすのに苦労しています。

コンパイラが本当に、本当に速くてシンプルにするのに苦労している関数の、不自然ではない良い例は何ですか? しかし、インライン アセンブリを使用すると、比較的簡単に作成できます。

0 投票する
1 に答える
2408 参照

c - Visual C++ 6.0 で次のインライン アセンブリ コードを記述するにはどうすればよいですか?

次のインライン アセンブリを使用する GCC (Linux/Ubuntu 用) の C でアプリケーションを作成しています。

上記のタイプミスを許してください(私は記憶から書いています)。Visual C++ 6.0 の同等のインライン アセンブラは何ですか? コードを移植する必要があることがわかりました。

0 投票する
2 に答える
5047 参照

c - x86_64 Linux のインライン asm からの syscall?

プログラムを正常に終了する代わりに、これがガベージを出力するのはなぜですか? 私はこのように BSD でシステム コールを使用していますが、Linux で動作させるには何が必要なのだろうかと思います。

ありがとう。

0 投票する
3 に答える
2151 参照

c - インラインasmを使用する関数全体でSSEレジスタを保持するようにGCCを取得します

私はいくつかの高速数学計算を行う必要があるCでプログラムを書いています。インラインSSEアセンブリ命令を使用して、SIMDアクションを取得しています(パックされた倍精度浮動小数点数を使用)。LinuxでGCCを使用してコンパイルしています。

一部のデータをループする必要がある状況にあり、計算に定数係数を使用しています。ループ中はその要素を安全なレジスタに隠しておきたいので、毎回再ロードする必要はありません。

いくつかのコードで明確にするには:

「register」キーワードで何かしてみました。しかし、私が間違っていなければ、その構造体へのポインターしか(一般的なレジスターに)保持できないように見えます。これは、反復ごとに延期する必要があり、貴重な時間を無駄にします。

GCCがxmm1レジスタを変更しないと仮定するのは好きではありません。それは、「鼻から飛び出す悪魔」のようなものではありません:-)。だから私はこれを行うための適切な方法があることを望んでいます。

0 投票する
4 に答える
1406 参照

c - この x86 インライン アセンブリは何をしているのですか?

このコードに出くわしたので、それが何をしているのかを理解する必要があります。2バイトを宣言してから何もしていないようです...

ありがとう!

0 投票する
2 に答える
4770 参照

visual-c++ - MSVC が AMD64 および Itanium ターゲットのインライン アセンブリをサポートしないのはなぜですか?

昨日、AMD64 および Itanium ターゲット用にコンパイルする場合、Microsoft Visual C++ ではインライン アセンブリ (__asm キーワードを使用) がサポートされないことを知りました。

あれは正しいですか?もしそうなら、それらのターゲットのインラインアセンブリをサポートしない理由を誰かが知っていますか? ただドロップするのはかなり大きな機能のようです...