Форум — Development GCC: ассемблерная вставка. 0 0 Есть кусок ассемблерной вставки в текст кодан на C, который нормально компилится Watcom-ом: unsigned char n; _asm { mov eax, 2 cpuid mov n, al }; Как этот кусок должен выглядеть, чтобы его понимал GCC? Ссылка
unsigned char n; asm("mov %%eax,2\n" "cpuid\n": "=a"(n)); io ★★ (25.12.06 18:03:40 MSK) Показать ответ Ссылка
Ответ на: комментарий от io 25.12.06 18:03:40 MSK Я его привел в такой вид: asm("mov %%eax, 2" "cpuid" :"=a"(n)); И не компилится этот код. anonymous (25.12.06 18:31:42 MSK) Показать ответы Ссылка
Ответ на: комментарий от anonymous 25.12.06 18:31:42 MSK ну так верни все как было показано :) alexru ★★★★ (25.12.06 18:36:24 MSK) Показать ответ Ссылка
Ответ на: комментарий от anonymous 25.12.06 18:31:42 MSK Переводы строк нужны обязательно. Этот код просто подставляется (с подстановкой регистров) в S файл. alexru ★★★★ (25.12.06 18:37:19 MSK) Ссылка
Ответ на: комментарий от alexru 25.12.06 18:36:24 MSK Нифига себе, вернул как было - и все откомпилилось! :) Пипец с этим синтаксисом... Спасибо, но теперь оно говорит Segmentation Fault. а в этой записи точно из регистра al копируется число? anonymous (25.12.06 18:45:42 MSK) Показать ответы Ссылка
Ответ на: комментарий от anonymous 25.12.06 18:45:42 MSK Sorry :-) asm("mov $2,%%eax\n" "cpuid\n": "=a"(n)); io ★★ (25.12.06 18:53:34 MSK) Показать ответ Ссылка
Ответ на: комментарий от io 25.12.06 18:53:34 MSK Теперь совсем другое дело. :) Спасибо, все заработало. anonymous (25.12.06 19:04:27 MSK) Ссылка
Ответ на: комментарий от anonymous 25.12.06 18:45:42 MSK А почему бы не использовать intel-синтаксис в gcc если Вы уж так привыкли? __asm__ __volatile__ ( ".intel_syntax\n\t" "cli\n\t" ".att_syntax" ); arnold_shade ★ (26.12.06 00:03:51 MSK) Ссылка