-
Возможны ли ассемблерные вставки в программе на C#? Я так понимаю, что НЕТ. Но мне тут клялись и божились, что есть прога на C# с ассемблером и она работает... Кто прав?
-
Исходный текст проги показывали?
-
> Возможны ли ассемблерные вставки в программе на C#?
Нет.
А зачем?
-
А зачем?
Действительно.
-
А что? Asm.NET - это идея.
:-)
-
А что? Asm.NET - это идея.
Прямой доступ к процессору противоречит идеологии .NET.
-
>>Seg (28.10.05 14:04) [5]
Будет прямой доступ, но managed +)
-
Прямой, но управляемый - это как?
Удалить все "вредные" функции?
-
Да, идея на 5+
Опкоды транслируются в их эквиваленты на MSIL... да, есть в этом что-то прекрасное... Asm.NET - наш подарок мазохистам.
Например:
nop
транслировать можно так: создаем экземпляр DummyClass и выжываем его метод DoNothing.
-
метод DoNothing.
.NET не может ничего не делать, когда ему нечего делать, он занимается сборкой мусора, передвигает блоки поближе к стеку и т.д.
-
Можно и без прямого доступа к процессору. Можно создать (если в дебрях Microsoft его еще не создали) транслятор, который будет преобразовывать коды ассемблера в соответствующий байт-код IL
-
> [9] Seg (28.10.05 15:02)
Это из рубрики "А мужики и не знали"?
А, вообще, идея не такая уж и бесполезная. Например, эмулировать среду выполнения x86 процессора, со своей "памятью", "регистрами" и "прерываниями". Возможности отладки - непревзойденные, опять же - запуск виртуальной машины x86 на целевых операционных системах, работающих на иных процессорах, но для которых уже реализована среда .Net.
Хотя, несомненно, легкий привкус абсурда имеется в этой идее :)
-
Действительно - круто. Виртуальная машина для запуска на виртуальной машине :)
-
> [12] DrPass © (28.10.05 20:10)
В виду всеобщего увлечения виртуальными машинами (в широком смысле) перспектива кажется вполне закономерной:-)
Я и то удивлен, что еще до сих пор не сварганили процессор, умеющий выполнять IL. Ну, это дело не за горами, я думаю. Вот пост-скрипт процессоры в принтерах давно реализовали (изначально), дело за малым. А идейное убожество (на которое еще в 70-х годах разработчики компиляторов пеняли) существующих процессорных архитектур и мощь их технических показателей этому поспособствуют.
-
Смотря что вы называете ассемблером.
Так устроит? :)
.assembly ILDemo {}
.class DemoApp {
.method static void Main() {
.entrypoint
ldstr "Hello, World!"
call void System.Console::WriteLine(class System.Object)
ret
}
}
компилируется это безобразие тем же ilasm.
В принципе, смысл в подобном извращении есть - некоторые фичи CLR C# не поддерживает.
-
> [14] ИА (29.10.05 04:39)
[mscorlib] забыли указать перед классом :)
-
Ну вам не угодишь.
Это еще я добрый. Вот ту сволочь что писала "Вычислительные методы на языке Бэйсик" или как там называлась та настольная книжка когда-то, я бы придушил. Искать опечатку в паре страниц реализации маталгоритма гораздо сложнее :)
-
> Исходный текст проги показывали?
Обещали показать. :-D Сегодня, наверное, поеду...
> Смотря что вы называете ассемблером.
Имелся в виду "классический" ассемблер с MOV, ADD, INT и прочими радостями.
> Вот ту сволочь что писала "Вычислительные методы на языке
> Бэйсик" или как там называлась та настольная книжка когда-
> то, я бы придушил
Уж не "Структуры данных для персональных ЭВМ" ли by Лэнгсам-Огенстайн-Танненбаум? :o)