Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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
Цитата(Step @ 17.7.2003, 10:19)
еще можно использовать для уменьшения размеров.....

Посмотрел бы я, как ты уменьшишь программу, написанную на 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
Код

int a=10;

_asm
{

mov ax,0

mov cx,ax

mov a,cx

}

// a = 0


Автор: 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
Извиняюсь за свою писанину smile.gif Это я глюканул %))

Автор: gribikc 22.7.2003, 16:25
PostErобёесни ка поподробней как с одной переменной созданной в c++ изменять ёё значения в asm вставки

Автор: PostEr 26.7.2003, 10:44
Я в си не знаю, но знаю в паскале. Могу сейчас врубиться, подожди...

Автор: PostEr 26.7.2003, 10:51
Попробуй код
Код

int a;

asm
{
mov a, 4;
}

// a=4

Автор: PostEr 26.7.2003, 10:53
В общем в коде асмовском просто пишешь названия переменных и всё работает. Только регистры используй не AX, а EAX (ну конечно если ты не на 80286 работаешь)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)