Перевод числа в дополнительный код на С с ассемблерной вставкой

столкнулся с проблемой, нужно перевести число в дополнительный код в ассемблерной вставке, компилятор MSVC, никак не получается это сделать, помогите!

Вот код

int main(int argc, char** argv) {

    const char* str = "-abcde";
    int size = strlen(str);

    if (str[0] == '-'){
        int num = 0;

        for (int i = 1; i < size - 1; ++i){
            num += str[i];
        }

        printf("ascii num: %d\n", num);

        int bin = 0, k = 1;
        __asm {
            mov eax, num
            mov ebx, 0

            while_loop:
            test eax, eax
                jz end_while

                mov edx, 0
                mov ecx, 2
                div ecx

                mov ecx, edx
                imul ecx, k
                add bin, ecx

                mov ecx, k
                imul ecx, 10
                mov k, ecx

                jmp while_loop

                end_while :
        }
        printf("Ascii num to binary: 1 %d\n", bin);

        char bin_str[32];
        sprintf(bin_str, "%d", bin);


        int res = atoi(bin_str);

        int answ;

        __asm {
            mov eax, num
            cdq
            xor eax, edx
            sub eax, edx
            mov answ, eax
        }

       
        printf("Ascii num in dop code: %d\n", answ);
    }
... Остальной код 

Ответы (0 шт):