Сейчас на форуме: zombi-vadim, zds (+4 невидимых) |
eXeL@B —› Программирование —› AT&T-нотация ассемблера в gcc |
Посл.ответ | Сообщение |
|
Создано: 26 августа 2013 16:43 · Личное сообщение · #1 Довольно нубский вопрос. Никогда не кодил под Linux, но тут пришлось. Столкнулся с проблемой - gcc требует, чтобы ассемблерные вставки были в формате at&t, а он очень сильно отличается от интеловского. Кроме того, параметры там нужно передавать через список, который находится непосредственно после строки, где содержатся инструкции. Может быть, где-то есть вменяемое описание этого формата на русском языке? Или, может быть, можно сделать так, чтобы gcc воспринимал intel-нотацию ассемблера (в том числе - и подстановку параметров без всего этого рака с их списком)? Заранее спасибо. ----- Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей. |
|
Создано: 26 августа 2013 17:02 · Личное сообщение · #2 |
|
Создано: 26 августа 2013 17:08 · Поправил: Crawler · Личное сообщение · #3 hors, но все-таки masm=intel не дает возможности избавиться от списка входных и выходных переменных, или я ошибаюсь? Есть ли способ сделать инлайн как в visual studio, к примеру? * я имел в виду вот что: неплохо бы вместо __asm("mov eax, %0\n"::"r"(some_var)); писать просто __asm("mov eax, some_var\n"). ----- Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей. |
|
Создано: 26 августа 2013 17:38 · Личное сообщение · #4 Crawler пишет: * я имел в виду вот что: неплохо бы вместо __asm("mov eax, %0\n"::"r"(some_var)); писать просто __asm("mov eax, some_var\n"). Можно, но нужно явно указывать размер. __asm("mov eax, dword ptr [some_var]\n") ----- http://ntinfo.biz | Сообщение посчитали полезным: Crawler |
eXeL@B —› Программирование —› AT&T-нотация ассемблера в gcc |