Господа! Приперло тут меня! Нада написать к шарпу функцию на ассемблере!
Директива ASM не подходит, надо писать файл на асьме и прилинковывать на стадии компиляции.
Кто может помочь! Я знаю, как это реализовать в Borland C++ но НАДО в VC#!
Конкретно: нужны описания процедур в C#, преобразованные в ASM формат, и описание способа компиляции в VS .NET
Требования к функции: Принимает строку (0-9 A-F, т.е. шестнадцатиричное число) преобьразовывает ее в 10-ричное и возвращает это 10-ричное число.
Так же, по возможности, нужно описание формата хранения строк в памяти (просто чтобы знать, с какого байта начинать обработку строки).
Please Help!
Интеграция ASM и C#
От:
Аноним
Дата:
11.12.04 20:45
Оценка:
Компилятор C# компилит только IL и там ассемблер просто концептуально невозможен. Максимум возможного — написать на ассемблере DLL и подключить ее в .NET проект через PInvoke, либо писать на C++ с расширениями, там делать а блоке ASM, а потом выставлять через .NET класс.
прав. Добавляю, лишь, что раз возникла такая необходимость, то есть четко непонимаение, что такое дотнет, зачем он нужен и как с ним работать.
Спасибо, за то что вовремя остановили... 8)
Интеграция ASM и C#
От:
Аноним
Дата:
12.12.04 07:31
Оценка:
Вы пишете:
«Требования к функции: Принимает строку (0-9 A-F, т.е. шестнадцатиричное число) преобьразовывает ее в 10-ричное и возвращает это 10-ричное число.»
Логичный вопрос: а чем Вас не устраивает
i.ToString (<уж не помню параметры>);
где i — Ваша переменная?
А вначале, когда ничего не было, всё было так...
Ставьте не спасибо, а рейтинг.
Здравствуйте, Fagim, Вы писали:
F>Компилятор C# компилит только IL и там ассемблер просто концептуально невозможен. Максимум возможного — написать на ассемблере DLL и подключить ее в .NET проект через PInvoke, либо писать на C++ с расширениями, там делать а блоке ASM, а потом выставлять через .NET класс.
А вы не могли бы дать ссылку на описание формата DLL, к которой у .Net не будет претензий?
Заранее благодарен
Здравствуйте, III.nfo, Вы писали:
IN>Вы пишете: IN>«Требования к функции: Принимает строку (0-9 A-F, т.е. шестнадцатиричное число) преобьразовывает ее в 10-ричное и возвращает это 10-ричное число.» IN>Логичный вопрос: а чем Вас не устраивает IN>i.ToString (<уж не помню параметры>); IN>где i — Ваша переменная?
IN>данное сообщение получено с www.gotdotnet.ru IN>ссылка на оригинальное сообщение
Ах, если бы... Тут дело не в том, что и как преобразовывает, а как использовать ассемблер.
... << RSDN@Home 1.1.3 stable >>
Re: Интеграция ASM и C#
От:
Аноним
Дата:
12.12.04 19:23
Оценка:
Обычная native dll вполне годиться. .NET позволяет использовать native библиотеки.
Мы писали курсовик: "Интеграция асьмы с языками высокого уровня". Вся интеграция прошла в паскале(года эдак 1991) и сишнике(1995) за десять лет много изменилось. Мене захотелось разобраться в том, как можно интегрировать АСЬМу с более продвинутыми языками (Кто нить видел коммерческий проекто на паскале за последние 5 лет?)
Почему асьма? Да, платформо- и осезависимая, но шустрая, как кролики весной...
Ну железячник я в душе, а для железячников есть только один язык — асьмь!
Здравствуйте, gaidar, Вы писали:
G>Обычная native dll вполне годиться. .NET позволяет использовать native библиотеки.
G>данное сообщение получено с www.gotdotnet.ru G>ссылка на оригинальное сообщение
Проблемма в том, что на асьме не построить DLL хотя можно это на С++ соорудить...
Здравствуйте, N_urk, Вы писали:
N_>Здравствуйте, gaidar, Вы писали:
G>>Обычная native dll вполне годиться. .NET позволяет использовать native библиотеки.
G>>данное сообщение получено с www.gotdotnet.ru G>>ссылка на оригинальное сообщение
N_>Проблемма в том, что на асьме не построить DLL хотя можно это на С++ соорудить...
Это как это?????? Вроде строилось на MASMе???
Здравствуйте, N_urk, Вы писали:
N_>Мы писали курсовик: "Интеграция асьмы с языками высокого уровня". Вся интеграция прошла в паскале(года эдак 1991) и сишнике(1995) за десять лет много изменилось. Мене захотелось разобраться в том, как можно интегрировать АСЬМу с более продвинутыми языками (Кто нить видел коммерческий проекто на паскале за последние 5 лет?)
Здравствуйте, N_urk, Вы писали:
N_>Заранее и очень благодаренЁ
Копай в сторону pinvoke
например для твоей ДЛЛ
будет так
[DllImport( "tstdll.dll", EntryPoint="TestProc", CharSet=CharSet.Auto, ExactSpelling=true, PreserveSig = true)]
private static extern void TestProc();
Здравствуйте, N_urk, Вы писали:
N_>Мы писали курсовик: "Интеграция асьмы с языками высокого уровня". Вся интеграция прошла в паскале(года эдак 1991) и сишнике(1995) за десять лет много изменилось. Мене захотелось разобраться в том, как можно интегрировать АСЬМу с более продвинутыми языками
Ты нашел самый неподходящий вариант. Если уж в C# встраивать ассемблер, то это должен быть ассемблер дотнета, т.е. MSIL. А вот x86-ой ассемблер встраивать в Шарп не очень разумная вещь. По крайней мере для тех реализаций этого языка которые работают поверх CLR.
N_>(Кто нить видел коммерческий проекто на паскале за последние 5 лет?)
На том же Дельфи хоть из ружа стреляй.
N_>Ну железячник я в душе, а для железячников есть только один язык — асьмь!
Теперь есть и MSIL. На мем може многое можно.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, migel, Вы писали:
M>Здравствуйте, N_urk, Вы писали:
N_>>Заранее и очень благодаренЁ M>Копай в сторону pinvoke M>например для твоей ДЛЛ M>будет так M>[DllImport( "tstdll.dll", EntryPoint="TestProc", CharSet=CharSet.Auto, ExactSpelling=true, PreserveSig = true)] M>private static extern void TestProc();
Я сказал Паскаль, а не Дельфи! А это большая разница!
А на счет мисла, так это мне только светит, потому, что он для .NET, а это, практически равно эмулятору, а я хочу разобраться в строении процессоров Intel, а не виртуальной машины!
Здравствуйте, N_urk, Вы писали:
N_>Я сказал Паскаль, а не Дельфи! А это большая разница!
И что есть какая-то разница где с ассемблером возиться? Правда для Дельфи асм уже давно как встроен.
N_>А на счет мисла, так это мне только светит, потому, что он для .NET, а это, практически равно эмулятору, а я хочу разобраться в строении процессоров Intel, а не виртуальной машины!
Тогда выбири что-то отличное от дотнета. На дотнете такой подход изврат. Да и если уж прижмет, то есть ДЛЛ и МС++.
N_>И ваще! Это уже можно и в "войны" пихнуть.
Тебе виднее.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.