ошибка: неизвестное использование мнемоники инструкции без суффикса размера - PullRequest
2 голосов
/ 29 марта 2019

Здесь весь исходный код

void asmFunction() {
    unsigned char threshold[16];
    initArray(threshold, 75-128, 16);
    unsigned char counterC2[16];
    initArray(counterC2, 128, 16);
    unsigned char buffer[SIZE];

    FILE *fp;
    fp = fopen(FILE_INPUT, "rb");
    FILE *foutput;
    foutput = fopen(FILE_OUTPUT_ASM, "wb");

    fread(buffer, sizeof(unsigned char), SIZE, fp);
    fclose(fp);
    __asm__(

            "mov $65536, %%edx\n"
            "mov %[thr], %%eax\n" // <--- this line
            "mov %[buf], %%ebx\n"
            "mov %[cc2], %%ecx\n"
            "movdqu (%%ecx), %%xmm2;\n"
            "movdqu (%%eax), %%xmm0;\n"
            "loop: movdqu (%%ebx), %%xmm1;\n"
            "psubb %%xmm2, %%xmm1;\n"
            "pcmpgtb %%xmm0, %%xmm1;\n"
            "movdqu %%xmm1, (%%ebx);\n"
            "add $16, %%ebx;\n"
            "sub $1, %%edx;\n"
            "mov $0, %%esi;\n"
            "cmp %%edx, %%esi;\n"
            "jnz loop;\n"
            : "=m" (buffer) // Output
            : [thr]"r" (threshold), [buf]"r" (buffer), [cc2]"r" (counterC2)
            : "xmm0", "eax", "ebx", "ecx"
        );

    fwrite(buffer, sizeof(unsigned char), SIZE, foutput);
    fclose(foutput);
}

Но я получаю следующую ошибку, и я не понимаю, почему:

неизвестное использование мнемоники инструкций без суффикса размера "mov% [thr], %% eax \ n "

Может кто-нибудь мне помочь?

...