inline-assembly

    3

    1答えて

    私は、特別なセクション(__dlog)に文字列を格納することによってELF実行可能ファイルにメタデータを追加しようとしています。現在のアプローチでは、文字列を格納するためにインラインアセンブリを使用し(乱用する)、ほぼ必要に応じて動作します。 #include <stdio.h> #include <stdlib.h> #define DLOG(proto...) \ __asm

    4

    2答えて

    ここで私はここでインターネットをしばらく調べていますが、インラインで実行できるかどうかはわかりませんGAS以外のものを使ってGCCと組み立てる。私はGASのAT & T構文(しかし、私はGASでIntel構文を使用する方法を知っている)だけでなく、拡張asm形式を使用するのを避けることができるかどうかを見出そうとしています。これはプロジェクトや自分の好奇心以外のものではありませんが、実際に私が得る

    1

    3答えて

    これは初めてのものです。 私はPCアセンブリ言語を読み終えました。私はAssemblyでRC4暗号化の実装に取り​​掛かっていました。 mov eax, [edx+ecx] 作品が、 mov eax, [edx-ecx] がない理由私が理解することができないことです。インラインアセンブラは私に それは何を意味し、このエラーメッセージ、「第二のオペランド」で 非定数式を与えますか?前もって感

    0

    1答えて

    マイクロチップv8.63のCコンパイラで18F4550を使用しています。私は 本の "Picマイクロコントローラと組み込みシステムを使って、アセンブリとcをpic18で使う"のコードを使っています。 次の行コードで、構文エラーが表示されます。RCNT EQU 0x20とMYREG EQU 0x21。 _asm RCNT EQU 0x20 MYREG EQU 0x21

    1

    3答えて

    変数aの左ビットワイドローテーションをC++でのキャリーなしに行う作業をしましょう。私は、このルーチンを実行するためにアセンブリをインラインで使用するほうがはるかに良いと思いますか? たとえば、a == 100 == 0b<a bunch of zeros>1100100の場合、a LR 1は0b1001001 == 73(つまり、0b11001000 == 200ではない)を指定する必要がありま

    1

    2答えて

    は ああ男、私は下GCC(-fasmブロックで)次のインラインアセンブリコードをコンパイルしながら、さらに別のエラーを持っている: _asm { mov ecx, esi shr ecx, 2 rep stosd }; GCCは、なぜそれがstosdを受け付けない、他のSTOSにの指示を理解???

    0

    1答えて

    私に見える機能はうまくいきます。私は、マルチスレッドアプリケーション用のカウンタを実装しようとしています。カウンタの値は整数の範囲を超えている可能性があるため、64ビットを使用しています。スレッドの安全性についてはあまりよく分かりませんが、ここでは64ビットの数値を扱っています。 UINT64 get_and_increment(volatile UINT64* dest) { UIN

    2

    2答えて

    私はユーティリティライブラリの一部であり、C++ Builderでコンパイルして実行すると作成されたユニットテストに失敗しています。問題関数は以下の通りです。単体テストを実行すると、プログラムは行fldcw controlWordにスタックしており、それを越えて移動することはできません。それは決して起こらない何かを待っているようです。何か案は? void FPUControl::setContro

    2

    3答えて

    ハードウェアに組み込んだカスタム命令を実行するインラインアセンブリコードを記述する必要があります。 実際のチップ上でどのハードウェアを見つけるかによって、命令の動作が異なります。 asm volatile ( " instr_generic %1, %2, %0 \n\t" : "=r" (c) : "r" (a), "r" (b) : "%g0"

    1

    2答えて

    128ビットレジスタから値(最初のワード16ビット)を抽出したいのですが、このコマンドがありますが、これは動作していません。aの値を設定した後に、変数内の結果として、算術演算は、あなたが_asmブロック内の組み込み関数を入れないでください int r; int inm=0; __m128i a=_mm_setr_epi16(8,9,3,2,4,5,6,11); _asm{ r