Я писал код в asm внутри C-программы и неправильно понял, что __asm {...} - это то, что мне нужно для этого.Позже я узнал, что __asm для компилятора MSVC, а не GCC.Что является эквивалентом в C для ключевого слова MSVC __asm?У меня есть метки и циклы в коде, который я написал, и я не знаю, каков их синтаксис в каком-либо ключевом слове __asm для GCC.
Мой код выполняет (или пытается сделать) древний метод умножения.
int p = 0;
int b = 10;
int a = 5;
/*
while(b!= 0){
if(b%2 != 0) p+=a;
a+=a;
b/=2;
}
printf("%i\n",p);
*/
__asm{
mov p, 0
mov edx, p
mov ebx, a
mov ax,b
jmp checkend
notEven:
add edx, ebx
mov edx, a
checkend:
cmp b, 0
je endok
test ax, 1
jnz notEven
add ebx, ebx
mov a, ebx
mov dx, 0
mov ax, b
mov bx, 2
div bx
mov b,ax
}
printf("%i\n",p);
return 0;
}