View previous topic :: View next topic |
Author |
Message |
mc-black
Joined: 07 Feb 2008 Posts: 7 Location: Нижний Новгород
|
(Separately) Posted: Thu Feb 07, 2008 19:14 Post subject: Плагины на ассемблере |
|
|
Уважаемые форумчане!
Кто-нибудь из вас где-нибудь встречал плагины к Total Commander, целиком написанные на одном из ассемблеров? Просто я сделал как пример минимальный fs-плагин на masm (компилируется в MASM32v9). Здесь, на русскоязычном форуме в поиске я нашел только два упоминания о ассемблере, причем в одном топике использовалась мелкая ассемблерная вставка в 3-5 инструкций, а в другом топике какой-то авторитет от C# что-то ляпнул про сравнение асм и яву, так и непонятно что.
Мне кажется, среди людей, которые пишут приложения, утилиты и драйвера на ассемблере нашлось бы немало желающих написать для себя лично (а заодно для других) полезный, удобный плагин. Раньше мне встречались старые версии документации по написанию плагинов, где описание и примеры давались целиком применительно к паскалю. Понятно, что читать паскаль с лету и разбираться в нем не каждому будет интересно, когда с ним он только мельком знаком. Зато когда появилась нормальная документация и примеры на си, всё изменилось в лучшую сторону. Большинство ассемблерщиков если не пишут на си, то в любом случае хорошо разбираются в документации, написанной преимущественно применительно к си.
Вот я и хочу продвинуть эту идею в массы и ищу единомышленников и т.д. и т.п. Могу даже минимально поучаствовать в выкладке исходников плагинов на ассемблере или составить перевод небольшого участка документации по написанию плагинов к Total Commander или написать маленький мануальчик по разработке плагинов на ассемблере (MASM). Короче, жду откликов. |
|
Back to top |
|
|
Lev
Joined: 02 Mar 2005 Posts: 392
|
|
Back to top |
|
|
D1P
Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
|
Back to top |
|
|
mc-black
Joined: 07 Feb 2008 Posts: 7 Location: Нижний Новгород
|
(Separately) Posted: Thu Feb 07, 2008 22:08 Post subject: |
|
|
Ok, спасибо за ссылку, буду смотреть, когда понадобится писать WCX-плагин. К слову, плагин был написан уже давно, тогда большинство писало на tasm, сейчас это уже редкость. Сейчас пишут часто на masm и всё большую популярность начинает набирать fasm. Плагин по размеру вышел у Stanislaw Pusep крошка. Кто ещё видел плагины, написанные на asm? Есть желающие попробовать свои силы, реализовать какой-нибудь новый проект? Иначе будем считать, что я первый, кто на asm написал wfx-плагин
P.S. Прикольно, D1P совсем на чуть-чуть позже, чем Lev, запостил одну и ту же ссылку. D1P, а почему ты так считаешь? По-моему ассемблер можно применить для написания всех видов плагинов Total Commander. |
|
Back to top |
|
|
DrShark
Joined: 21 Oct 2006 Posts: 911 Location: Kyiv, Ukraine
|
|
Back to top |
|
|
mc-black
Joined: 07 Feb 2008 Posts: 7 Location: Нижний Новгород
|
(Separately) Posted: Thu Feb 07, 2008 22:50 Post subject: |
|
|
Quote: | Не знаю, можно ли отнести HiAsm к семейству ассемблеров |
Да и тоже как-то в этом не уверен ) Впервые узнал о таковом сегодня, нет это не ассемблер однозначно, даже если ассемблер используется на этапе компиляции. А вообще, интересно:
http://hiasm.com/ |
|
Back to top |
|
|
Моторокер
Joined: 06 May 2005 Posts: 1517 Location: г. Пермь (читается Перьмь)
|
(Separately) Posted: Fri Feb 08, 2008 09:04 Post subject: |
|
|
mc-black wrote: | Могу … составить перевод небольшого участка документации по написанию плагинов к Total Commander |
Не ассемблер, но может возникнут какие-то замечания:
Статья Архиваторный плагин на Borland Delphi
Перевод Написание WCX архиваторных плагинов для Total Commander (Writing WCX packer plugins for Total Commander)
mc-black wrote: | нашлось бы немало желающих написать для себя лично (а заодно для других) полезный, удобный плагин |
При современных скоростях инета и путеров не важны ни объём ни скорость плагина.
Можно и написать в качестве лабораторки.
Не так важно, на чём написан плагин, главное чтобы он был.
Часто накладывают ограничения посторонние компоненты. И если стандартные VCL можно на KOL/MCK заменить, то с другими компонентами это будет уже сложнее. _________________ плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми |
|
Back to top |
|
|
mc-black
Joined: 07 Feb 2008 Posts: 7 Location: Нижний Новгород
|
(Separately) Posted: Fri Feb 08, 2008 09:49 Post subject: |
|
|
2 Моторокер:
1. Замечаний пока нет, но возможно будут.
2. Насчёт объёма плагина: при настоящей цене EDGE-трафика моего провайдера объём продолжает иметь для меня значение. А скорость - второй по значению критерий качества любого архиватора (это касательно архиваторных плагинов).
3. В принципе согласен с тем, что не так важно, на чём написан плагин, главное чтобы он был. Просто чем больше программеров вовлечено в написание плагинов, тем больше плагинов полезных и разных будет написано. Для этого всесторонняя документация и свободный доступ к исходникам примеров на мой взгляд очень полезны.
4. А вот компоненты, KOL/MCK - это чисто борландовские понятки. Ясней всего было бы сказать, что плагин - это обычная dll, использующая соглашение о вызовах stdcall, как и большинство функций стандартных библиотек windows. |
|
Back to top |
|
|
Lev
Joined: 02 Mar 2005 Posts: 392
|
(Separately) Posted: Fri Feb 08, 2008 13:10 Post subject: |
|
|
Quote: | Кто-нибудь из вас где-нибудь встречал плагины к Total Commander, целиком написанные на одном из ассемблеров? |
Судя по этому осуждению. 2 из 3-х плагинов с этой страницы тоже написаны на ассемблере, но исходников там не наблюдается. |
|
Back to top |
|
|
D1P
Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
(Separately) Posted: Fri Feb 08, 2008 14:09 Post subject: |
|
|
mc-black wrote: | D1P, а почему ты так считаешь? По-моему ассемблер можно применить для написания всех видов плагинов Total Commander. |
Несопоставимое соотношение скорости раработки к функционалу. Писать на асме имеет смысл только для саморазвития. К тому же, для подавляющего большинства плагинов ассемблерная оптимизация не будет иметь смысла, т.к. всё упрётся в скорость обработки самим TC. Например, абсолютно неважно, с какой скоростью я подготовлю список для вывода на панель - TC всё равно отобразит его с ужасающей скоростью... _________________ База знаний о Total Commander
Блог |
|
Back to top |
|
|
mutex
Joined: 16 Dec 2004 Posts: 134 Location: Казахстан
|
(Separately) Posted: Fri Feb 08, 2008 14:21 Post subject: |
|
|
Нижеследующий Листер-плагин "Просмотр файлов баз данных в формате DBF (Dbase, Paradox)" имеет размер всего 25 КБ. Думаю, что он уж точно написан на Ассемблере:
http://wincmd.ru/plugring/dbfview.html
Обратите внимание на дату выпуска плагина: 12.11.2003 !!!
Т.е. Ассемблер применяется уже давно. _________________ E.Savich
http://www.xbaseview.com |
|
Back to top |
|
|
mc-black
Joined: 07 Feb 2008 Posts: 7 Location: Нижний Новгород
|
(Separately) Posted: Sat Feb 09, 2008 03:00 Post subject: |
|
|
2 Lev:
Да, похоже всё судя по размеру написано на ассемблере. Архивы по 8 килобайт и т.п. Я смотрел только один из трех плагинов, листер-плагин. Так вот, там код довольно плотно и компактно написанных, ниаких лишних nop'ов или int 3 (только одна функция слегка особняком, на то могли быть причины, связанные с отладкой). Вот это и есть пример качественно написанного плагина, писал энтузиаст.
2 D1P:
Несопоставимое соотношение скорости разработки к функционалу, это основной довод против использования его в разработках. Не забудьте ещё полную непригодность для портирования программ на другие программные/аппаратные платформы, отсутствие стандартных библиотек и сложное восприятие кода при отсутствии должных комментатиев. На мой взгляд, с учётом всего написанного выше, на нем всё-таки можно относительно быстро разрабавывать структурированные программы подобно языку си (за минусом портируемости и т.п). Зато размер программы, и ещё важнее эффективное использование памяти и процессорного времени. Я не настаиваю на повсеместном применении именно асма, но по-моему энтузиасты на асм могли бы сделать немало системных утилит, а также полезных инструментов для разработчиков. Кстати ты прав насчёт скорости вывода тотал коммандером списков, сформированных плагином. В этом смысле любая windows-программа никогда не выпрыгнет за рамки того, что позволяет система при обработке API-вызовов, кроме драйверов режима ядра.
2 mutex:
59392 байт - очень спорный вопрос, это может быть что угодно, в том числе даже Delphi, эффективно написанный и оптимизированный К тому же такие программы просто используют api давно уже написанных драйверов баз данных, я прав? |
|
Back to top |
|
|
mutex
Joined: 16 Dec 2004 Posts: 134 Location: Казахстан
|
(Separately) Posted: Sat Feb 09, 2008 16:02 Post subject: |
|
|
> 59392 байт - очень спорный вопрос, это может быть что угодно, в том числе даже Delphi
Видимо файл плагина запакован чем-то. Точно не помню, но где-то читал про автора плагина - Сергея Чехута, о том, что он - ассемблерщик. Можно сходить на его сайт: http://www.whitetown.com/cdbfview/ и спросить его.
Все равно, для утилиты баз данных это очень крохотный размер. Сравните с моим Дельфи-плагином: http://wincmd.ru/plugring/xBaseView.html, который без упаковки весит аж 3 мегабайта! _________________ E.Savich
http://www.xbaseview.com |
|
Back to top |
|
|
D1P
Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
(Separately) Posted: Sat Feb 09, 2008 16:52 Post subject: |
|
|
Но твой плагин и может гораздо больше. По сути, это полнофункциональный редактор, в то время, как просмотр DBF - не очень сложен. Я, лет пять назад, писал на дельфе простенькую программку, которая конвертировала DBF в CSV. Описания структуры DBF у меня не было, тем не менее, разобрался.
mc-black
Если сам знаешь плюсы и минусы, тогда в чём вопрос? Вперёд, писать плагины. _________________ База знаний о Total Commander
Блог |
|
Back to top |
|
|
mc-black
Joined: 07 Feb 2008 Posts: 7 Location: Нижний Новгород
|
(Separately) Posted: Sun Feb 10, 2008 15:28 Post subject: |
|
|
формат DBF сам по себе очень простой. автор мог использовать нестандартные библиотеки, которые компилировал, с умом подбирая версию компилятора и линкера, параметры командной строки, словом не тупо жал кнопку Build (или какая там имеется). я думаю, чтобы уложиться в этот размер для функционала того самого плагина можно было использовать много что, даже необязательно ассемблер. если оптимизировать на асме этот плагин бы занял меньше 15-20K, скорее даже где-то 12K. пакер после компиляции этой библиотеки не использовался, уверяю вас (загрузите программу в отладчике). мало того, на ассемблере редко нужно выполнять такие инструкции, как:
db 0 ;в секции кода между процедурами!
mov esi,esi ;между процедурами, встречается не меньше, чем пару раз!
nop ;до и после процедуры
все эти выражения просто трезвый человек не станет ставить посреди программы, т.к. они ничего не делают. это может вставить только искусственный - оттого и недоразвитый - интеллект компилятора. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|