с утра Питон, с пробелами и табуляцией, щас inline GNU assembler. Может не все его видели:
movl 4*n(%%esi,%%edx,4), %%eax \n\
movq %%mm1, %%mm0 \n\
pxor (%%edi,%%eax,8), %%mm0 \n\
Клавиша % может очень быстро сломаться.
Здравствуйте, кубик, Вы писали:
Меня их совершенно идиотский синтаксис всегда бесил.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Здравствуйте, кубик, Вы писали:
К>с утра Питон, с пробелами и табуляцией, щас inline GNU assembler. Может не все его видели:
К>К> movl 4*n(%%esi,%%edx,4), %%eax \n\
К> movq %%mm1, %%mm0 \n\
К> pxor (%%edi,%%eax,8), %%mm0 \n\
К>
К>Клавиша % может очень быстро сломаться.
Тебе лавры Shmj или RussianFellow покоя не дают? Вбросить и убежать?
По-нормальному в этом ассемблере используются констрейнты типа %0 или %[src2]. Фиксированный регистр это хоть местами и нужно (потому что у команд x86 самые тупые проектировщики, какие только могут быть), но для большинства нафиг не рекомендуется, потому что ограничивает возможности компилятора по распределению регистров (а то, что он трудолюбивее и настырнее тебя в этом, можешь не сомневаться). Твоя задача как кодера — дать ассемблеру максимальную свободу в распределении регистров, и если ты фиксируешься на %mm1 — ты сам себе буратин.
Возможно, ты после никчемного ассемблера MSVC с его фиксированными регистрами пытаешься перейти на GCCʼшный подход, ну так надо было вначале хотя бы родную документацию почитать...
netch80,
Спасибо за проф. ответ. Nasm например сделал красиво. Если я куда то буду переходить то на nasm.
Если б это было %mm0 то еще боле менее, но это %%mm0!
btw, Это ж священные войны, а в войнах бывает разная тактика. Убегать надо не потому что страшно, а потому что есть работа.
Здравствуйте, кубик, Вы писали:
К>netch80,
К>Спасибо за проф. ответ. Nasm например сделал красиво. Если я куда то буду переходить то на nasm.
А что они сделали-то? Я видел код на nasm, но меня интересует именно что тут думают по теме макр (а такие конструкции для ассемблера это именно что макры, хоть и в ограниченном виде).
Если ты вспоминаешь, что они не требуют обязательного префикса перед регистрами... ну тут, конечно, решение такого же уровня, как требовать писать @if, @int в языке типа C, но как гарантия избавления от конфликтов это надёжно работает. Тут все вопросы к AT&T.
К>Если б это было %mm0 то еще боле менее, но это %%mm0!
Мне пофиг. Писать так приходится очень редко и клавиатуру не испортишь
К>btw, Это ж священные войны, а в войнах бывает разная тактика. Убегать надо не потому что страшно, а потому что есть работа.
Ну вот я в перерыве и зашёл сюда
Здравствуйте, кубик, Вы писали:
К>Клавиша % может очень быстро сломаться.
Используй опцию gcc -masm=intel
Здравствуйте, кубик, Вы писали:
К>с утра Питон, с пробелами и табуляцией, щас inline GNU assembler. Может не все его видели:
Коллега, да у вас просто день открытий
Здесь-то что не так?