Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
Ассемблерные вставки. |
Философия, технологии, алгоритмы! |
|
Опции темы |
17.05.2003, 01:04 | #2 |
Форумец
Сообщений: 334
Регистрация: 14.04.2003
Возраст: 42
Не в сети |
Re: Ассемблерные вставки.
> Пишу я на Visual C++.
> Мне необходимо функцию, написанную на ассемблере > вставить в исходник. Как мне это сделать? Заранее спасибо. void foo () { _asm { xor eax, eax } } |
17.05.2003, 12:39 | #3 |
Форумец
Сообщений: 11
Регистрация: 12.05.2003
Не в сети |
Спасибо, такую шнягу я знаю. Я наверное неправильно сформулировал вопрос.
У меня есть asm файл. В нем функция. Мне надо эту функцию вызвать. В принципе, он замечательно вставляется в проект, но когда я пытаюсь вызвать функцию, компилятор выдает ошибку. Скорее всего нужно прописать в заголовке что-то вроде #include "". Вот что именно нужно прописывать? |
18.05.2003, 00:05 | #4 |
Форумец
Сообщений: 334
Регистрация: 14.04.2003
Возраст: 42
Не в сети |
Так вот. Как это сделать правильно и проще я описал, да и ты сам знаешь как это сделать.
Теперь, как сделать так, как хочешь ты В ASM-файле у тебя должно быть описано в разделе public, какие символы ты экпортишь (процедуры и переменные). Из ASM делаешь OBJ, из OBJ --> LIB. Получившийся LIB встравляешь в проект (Project->Settings->Link). Импортишь символы в C++ через extern "C". Если у тебя не PureC, то просто описываешь декларацию. RomanPshenichny добавил [date]1053206077[/date]: Накопал классный туториал по этому геморою "Using x86 Assembly Language with Microsoft Visual C++ 6.0" http://www.cs.virginia.edu/~csadmin/...aq/vc_asm.html Ну, и конечно, классика от MSDN: "Demonstrates a Mixed C and ASM Project with a C Header File" http://msdn.microsoft.com/library/de...rimesstep3.asp |
18.05.2003, 22:51 | #6 |
Форумец
Сообщений: 334
Регистрация: 14.04.2003
Возраст: 42
Не в сети |
> И кому оно нужно: низкоуровневое программирование
Местами -- нужно. И платят за это хорошо Иногда -- без этого, ну совсем никак. Примеры: - шейдеры на видеокарте. - общая оптимизация. - всякий специфичный хард, типа мелких контроллеров. |
20.05.2003, 21:42 | #9 |
Форумец
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39
Не в сети |
Alexey Ты смеешься ? Или хуже того мне не веришь...
Так знай же... Я уже могу предоставить довольно простую, замечательную игровую программу на VB.NET и DX8. И исходники... На моей старой видеокарте 200FPS в окне 640*480. Только установи платформу http://msdn.microsoft.com/netframework/downloads/ И ещё я не виноват если программа не заработает на .NET 1.1 я её компилировал в .NET 1.0 Одно - НО. Программа не настолько моя НО это ни чего не меняет. BASIC-FOREVER |
01.06.2003, 18:49 | #10 |
Форумец
Сообщений: 39,820
Регистрация: 27.05.2003
Возраст: 46
Не в сети |
LSL
Я понимаю, что ты просто шутишь. Но все же отвечу - есть алгоритм, который выполняет 1000000 операций в секунду. Написан на С и код оптимизирован. Надо добиться результата в несколько раз лучше. Ы? На Dot Net переходить не предлагать А то, что что-то путевое написать можно даже на спектрумовском васике, так базара нет. Но почему-то Абраш когда такты считал для первой кваки, примеры были на асме. Не спрашивай меня, почему... |