Как реализовать деление в ассемблерной вставке в dev-c++ на си
Пишу в dev-c++. Мне нужно вычислить определенное выражение с помощью ассемблерной вставки на си. Я уже определил как такая вставка делается, какой-то AT&T синтаксис. Вот как пример:
asm("movl $0x-2, %%ebx\n\t"
"movl %1, %%eax\n\t"
"mull %%ebx\n\t"
"addl $53, %%eax\n\t"
"movl %%eax, %0\n\t"
:"=m"(c)
:"m" (c)
);
Вот это работает. Но не работает div, т.е. вот такой код выдает просто висящую консоль:
asm("movl %1, %%eax\n\t"
"movl $0x4, %%ebx\n\t"
"divl %%ebx\n\t"
"movl %%eax, %0\n\t"
:"=m"(a)
:"m"(a)
);
В общем, как осуществить деление, чтобы работало.
Источник: Stack Overflow на русском