Перевод числа в дополнительный код на С с ассемблерной вставкой
столкнулся с проблемой, нужно перевести число в дополнительный код в ассемблерной вставке, компилятор 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);
}
... Остальной код