inline-assembly

    -1

    2答えて

    単純な比較とスワップインラインアセンブリコードを作成しようとしています。ここに私のコードは、このコードは、理想的に5を印刷する必要があり #include <stdio.h> #include <stdlib.h> #include <stdint.h> static inline unsigned long cas(volatile unsigned long* ptr, unsigne

    1

    1答えて

    JIT compiler for the virtual machine in ioquake3を維持しています。 最近、誰かがioquake3からPIEバイナリを作成しようとしましたが、コンパイルされたコードはPICコード内のEBXレジスタを大量に使用するため、PIEバイナリはGOTアドレスを含む固定レジスタです。 仮想マシンは固定小数点でGCCコンパイルコードを呼び出すことがあります。そこで、

    1

    2答えて

    私はRPI2 OS用のGPIOドライバを作成しています。そして私はそれについて本当に長い時間サーフィンをしていましたが、Linuxのデータしか見つかりませんでした。ドライバのためのCのような機能をどのようにして void gpio_set(int pin); void gpio_clr(int pin); とするべきですか?それとも、インラインアセンブリーのおかげですか?

    0

    1答えて

    gcc(Linuxの場合)でインラインアセンブラを使用しています。私はRCXレジスタ内の文字列のアドレスを書き込むために、この奇妙な構文を使用しています char *str="hello world"; int main(int argc, char *argv[] { ... asm("mov %0, %%rcx"

    0

    1答えて

    質問はかなり単純です。私がやっていることは、プロセスのdetoured関数を復元することです。 私が迂回したと言うとき、私はいつも不明な場所へのjmp命令を意味します。 たとえば、ntdll.dllエクスポートのNtOpenProcess()が迂回されていない場合、関数の命令の最初の5バイトはmov eax, *の行に沿っています。 (*オフセットOSのバージョンによって異なります。)mov ea

    2

    1答えて

    このコードを私のearlier questionから考えてください。 int main(){ asm("movq $100000000, %rcx;" "startofloop: ; " "sub $0x1, %rcx; " "jne startofloop; "); } 私は、ループC変数の反復回数をしたいと思いますので、私はthis d

    -1

    1答えて

    私はx86/linuxで完全に動作する以下のコードを持っています。私はこのコードをgccクロスコンパイラを使ってアルファに変換したい。私は自分で行うには、適切な情報源を見つけるcouldntの「ASM」 で 不明なレジスタ名「EAX」: それは次のようなエラーが発生しています。 inline uint64_t timestamp(void) { unsigned long a

    1

    2答えて

    インラインアセンブリを使用して、2つのメモリ位置をC変数に読み込み、2つのC変数を他のメモリ位置に格納する必要があります。私が書いたインラインコードは次のようになります。 unsigned int us32 = (uint32_t)us; __asm__ __volatile__("ldr %1, [%4, #0x10]\r\n" //read my 2 memory locations

    2

    1答えて

    から問題 を読ん値で終了システムコール私は、LinuxのAndroidデバイス上でインラインアセンブリを使用してARMでexitシステムコールを実行したい、と私は終了値から読み取ることがしたいですメモリ内の位置。 例 この余分な引数を与えることなく、通話のためのマクロは次のようになります。 #define ASM_EXIT() __asm__("mov %r0, #1\n\t" \

    0

    1答えて

    基本関数を計算するときは、定数変更を適用します。特にexp(x)の実装にあります。これらのすべての実装では、ln(2)による修正は2つのステップで行われます。 (2)LNは、二つの数に分割されています。私はそれを丸め効果を避けるために知っている blablabla -= ln2p1 blablabla -= ln2p2 : static const double ln2p1 = 0.6931