Как реализовать деление в ассемблерной вставке в dev-c++ на си

Рейтинг: 0Ответов: 0Опубликовано: 23.06.2023

Пишу в 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)
    );

В общем, как осуществить деление, чтобы работало.

Ответы

Ответов пока нет.