Форум сайта python.su
Всем привет!
Пожалуйста, подскажите как в питоне подключить код на asm
код асемблера можно посмотреть на http://forum.vingrad.ru/index.php?showtopic=116283&view=findpost&p=984833
Офлайн
Можно попробовать на Си написать питоновский модуль и в сишный код вставить ассемблерный.
Офлайн
slivlenспасибо :)
Можно попробовать на Си написать питоновский модуль и в сишный код вставить ассемблерный.
Отредактировано (Янв. 5, 2007 11:38:52)
Офлайн
Почему собственно тут верховенствует Си?!
Дайшь ассемблер на Питоне!!! :)
Офлайн
Вообще, почему бы и нет?
Парсер нада? На Python'е - легко!
Коды подставлять? Берём flat-assembler и выдёргиваем, что надо. :)
На практике, мои готовые файлы не выходили за пределы 4 кило.
Каждый раз всё компилить - смысла особого нет. Сырые бинарники и так можно сшивать. :)
А ещё лучше виртуальную машину нарисовать.
Офлайн
Офлайн
есть еще такое чудо: pyasm
http://mysite.verizon.net/olsongt/, еще не опробовал, только скачал.
Офлайн
krwlr, спасибо - как опробуешь, пожалуйста, опиши :)
Отредактировано (Янв. 15, 2007 11:17:29)
Офлайн
Ну вот видите.
На Python'e да ассемблер не нарисовать - это же просто грех. ;)
Офлайн
2 pythonwin:
Что сказать?
Короче натравил профайлера на две процедуры “хелло ворлд” и вышло примерно это:
асм_процедура: 156 calls in 0,007 CPU
питон_процедура: 240 calls in 0,015 CPU.
а время выполнения timeit почти одинаковые, разница оочень маленькая, не запомнил.
Это примерно, проверял день назад, и забыл. Сам пакет так не установится, нужен еще winpy, или pywin, pythonwin короче :-), все пробовал на питон24, т.к сам пиасм и пивин под версии 2.4 были.
Там короче можешь забыть про всякие int 21h и т.п.
В документации вроде-бы говорится что идет под *nix и win, кроссасм :-), тогда нафиг устанавливать пивин? у меня по инструкции
int (любое hex число), выбивало “ошибка приложения, отправить сообщение об ошибка биллу? Да\Нет”. Такое ощущения что это просто позволяет писать опкоды вместо \xff\x5c\bla-bla.
Короче ассемблер я знаю на уровне “хелло-ворлд”, так что не опытен и может быть чего-то недопонимаю или в чем-то неправ, мне не понравилось, но пробовать надо.
Офлайн