-1

次のようなコードを書きました。

char* xor_and_print(byte arr[], size_t buffSize, byte key)
{
    size_t i;

    for(i = 0; i < buffSize; i++)
    {
        printf("%c", (arr[i] & ~key) | (key & ~arr[i]));
    }
    putchar('\n');
}

これは、より多くの命令に展開された xor 操作です。gcc-6.3.0 を使用しています。flag を指定してコンパイルした場合でも-O0、gccxorは逆アセンブリでこれを 1 つの命令に変換します。これらの特定の asm 命令をフラグ付きで強制的に記述することは可能ですか、それともインライン アセンブリ言語を使用する必要がありますか?

4

1 に答える 1