問題タブ [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.
atomic - Solaris (sparc アーキテクチャ) でアトミック加算操作コードが必要
次と同等のアトミック操作コードが必要です。
(Linux では、2 つの変数 a と b を追加し、出力を a と c の両方に保存します)
Solaris(Sparcアーキテクチャ)では上記と同等のものが必要です。私を助けてくれる人はいますか?
gcc - SSE命令の使用中に、このセグメンテーション違反の原因は何ですか?
この問題は私を少し狂わせています。コードは、正当な理由もなくセグメンテーション障害のようです。
'before'変数と'after'変数の両方を定義している限り、セグメンテーション違反に注意してください。「前」または「後」がある場合は、正常に機能します。
私はUbuntuHardy(8.04)、GCCバージョン4.2.4(Ubuntu 4.2.4-1ubuntu4)を使用しています。Linuxカーネル:2.6.24-16-generic。
c - GCC とインライン asm を使用して、実行時に CPU アーキテクチャの種類をどのように検出しますか?
CPU のアーキテクチャ タイプを見つける必要があります。マシンが syslinux を実行しているため、/proc/cpuinfo にアクセスできません。インライン ASM でそれを行う方法があることは知っていますが、変数 iedx が適切に設定されていないため、構文が間違っていると思います。
私は ASM と一緒に苦労していますが、決して専門家ではありません。誰かがヒントを持っているか、正しい方向に私を向けることができれば、私は大いに感謝しています.
c++ - __asm を使用して 16 進オフセットから関数を呼び出す
組み立てが苦手なのでどうしたらいいのかわかりません。
別のプログラムにフックしているプログラムがあります。フックされたプログラムの .exe 内で関数が配置されている場所へのオフセットを取得しました
では、__asm{} を使用してその関数を呼び出すにはどうすればよいでしょうか?
gcc - AT&T インライン構文
INTEL で以下で行っていることを実行するための正しい AT&T 構文を誰でも示すことができますか?AT&T での試みを示しましたが、コンパイルされません...
c - at&tasmインラインc++の問題
私のコード
私の問題
gccコンパイラを使用しています。何らかの理由で、私のバッファ/howmany変数は私のasmの目には定義されていません。理由はわかりません。バッファ配列の開始アドレスをesiレジスタに移動し、各要素をalレジスタにコピーしながら「何回」ループさせたいだけです。
gcc - このインラインasmを非インラインasmに変換できますか?
このインラインasmに出くわしました。この構文がないとどうなるかわかりません...誰かに見せてもらえますか?
c - アセンブラでバイナリデータをファイルに書き込む方法は?
sys_write
システムコールを介して(stdout またはファイルに)バイナリ書き込みを試みましたが、テキスト ファイルしか持てません。テキストなし (バイナリ) バイトも取得するにはどうすればよいですか?
この例を試してみると、テキストバイトでない場合、14 バイトを書き込むことはできません (テキストバイト以外のファイルの長さは 0 です!)。
c++ - x86 XMM レジスターに、別の XMM レジスター エントリから 4 つの同一の浮動小数点数を入力するにはどうすればよいですか?
SSE を利用するために、(C/C++ コードで) インライン アセンブラを実装しようとしています。値を (XMM レジスターまたはメモリから) 別の XMM レジスターにコピーおよび複製したいと考えています。たとえば、メモリに値 {1, 2, 3, 4} があるとします。これらの値をコピーして、xmm1 に {1, 1, 1, 1}、xmm2 に {2, 2, 2, 2} などを入力するようにします。
Intel のリファレンス マニュアルを調べたところ、これを行うための説明が見つかりませんでした。繰り返される MOVSS とローテーションの組み合わせを (PSHUFD 経由で) 使用する必要がありますか?
c++ - ループ内のインラインアセンブリ
コンパイル時に引数の数が不明な関数を呼び出す必要があるプロジェクトでインラインアセンブリを大量に使用し、Linuxで動作させるために自分自身を管理している間(Windowsではその問題が発生したことを思い出せません)このような奇妙なことが起こります:
私が何かを持っているなら
できます。
私が持っている場合
そして私は、someVarがセグメンテーション違反をスローする値1を保持していることを私の人生で保証します。
また、私が持っている場合
それは動作しますが
ではない。
また、不思議なことに、一部の関数では問題がない一方で、他の関数ではすべて同じオブジェクトで問題が発生していると言えます。
誰かが私にそこの問題を解決することができるいくつかの情報を指摘することができれば、私は感謝します。
私は実際にforループで引数をプッシュする必要があるので、それを回避することはオプションではないことに注意してください。
インラインアセンブリワード「volatile」も使用してみましたが、何も変わりませんでした。