| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Зачем нужны asm вставки |
| Автор: trix 17.7.2003, 03:40 |
| Много я прочетал про эти вставки, но зачем конкретно их можно использовать в VC незнаю. Проясните кому не лень. |
| Автор: kor 17.7.2003, 05:49 |
| Когда, хочешь клево выпендриться и типа написать особо быстро работающую шнягу, используй их... еще когда работаешь с аппаратурой, драйвера пишешь и прочую лабуду на низком уровне делаешь типо удобно |
| Автор: Step 17.7.2003, 10:19 |
| еще можно использовать для уменьшения размеров..... |
| Автор: Baa 17.7.2003, 13:05 | ||
Посмотрел бы я, как ты уменьшишь программу, написанную на Visual C++ Более того, даже оптимизация сомнительно... современные компиллеры дожили до того, что достаточно оптимизировать код без ассемблерных вставок. |
| Автор: PostEr 17.7.2003, 13:47 |
| Современные компилеры не до-жили до того, чтобы самим прогать контроллеры таких девайсов, как например ADC NVL38, фирмы "Сигнал" %)) Конкретнее - применение в к.графике, в исходниках Quake3 пааално асма, т.к. некоторые функции необходимо (и возможно) оптимизировать под SSE2 |
| Автор: Step 17.7.2003, 14:08 |
| Baa не будем кидаться в крайности - а то флейм поползет |
| Автор: gribikc 19.7.2003, 12:48 |
| дайте пару примеров вставок на ассме (синтаксис посмотреть) просто напишите как их вставлять |
| Автор: PostEr 21.7.2003, 17:49 | ||
|
| Автор: HexoGenus 22.7.2003, 13:52 |
| Ищешь в каталоге Билдера variant.cpp или dstring.cpp и там находишь что то вроде int __fastcall AnsiString::Length() const { asm { extrn @System@@LStrLen$qqrv:near mov eax, [eax] call @System@@LStrLen$qqrv } } |
| Автор: PostEr 22.7.2003, 14:42 |
| Извиняюсь за свою писанину |
| Автор: gribikc 22.7.2003, 16:25 |
| PostErобёесни ка поподробней как с одной переменной созданной в c++ изменять ёё значения в asm вставки |
| Автор: PostEr 26.7.2003, 10:44 |
| Я в си не знаю, но знаю в паскале. Могу сейчас врубиться, подожди... |
| Автор: PostEr 26.7.2003, 10:51 | ||
Попробуй код
|
| Автор: PostEr 26.7.2003, 10:53 |
| В общем в коде асмовском просто пишешь названия переменных и всё работает. Только регистры используй не AX, а EAX (ну конечно если ты не на 80286 работаешь) |