Написал пару классов на ассемблере, созданных при помощи Object Creator. Выручают все больше, и больше. Классы: File,Buffer,String,Socket,Http,Mail.
Я пишу IDE на похожую тему. Но у меня несколько другой подход, так сказать, нетрадиционный. Генерация кода из базы данных. Что-то похожее на HLA, но не так накручено.
Ну,вот, кому интересно архивчик с 6 классами(еще совсем сырые, но работают). Как использовать(Amail): newobject aHttp,addr server_name,addr ip_server mov esi,eax ;создаем соедениние method esi,aHttp,GetPage,addr null_Query_String,addr szAnswer,addr HttpPage,PAGESIZE ;получаем ответ Никак не могу найти время исправить то, что надо указывать и имя_сервера, и ip. Я его использовал для руткита, который отправляет пароли с iexplore через cgi. Или вот как просто на асме сохранять интернет страницы: .386 .model flat,stdcall option casemap:none include windows.inc include wsock32.inc include ws2_32.inc include kernel32.inc include user32.inc include /masm32/oop/objects.inc include /masm32/oop/lib/Asocket.asm include /masm32/oop/lib/Afile.asm include /masm32/oop/lib/aHttp.asm includelib kernel32.lib includelib user32.lib includelib ws2_32.lib includelib wsock32.lib .const ip db "64.233.187.99",0 server db "google.com",0 fn db "log",0 .data res db "search?q=assembler&hl=ru&lr=&filter=0",0 HttpPage db 8036 dup(0) pagesz dd 0 file dd 0 .code start: newobject Afile,addr fn mov file,eax newobject aHttp,addr server,addr ip mov esi,eax method esi,aHttp,GetPage,addr res,addr pagesz addr HttpPage,sizeof HttpPage method file,Afile,aWriteFile,addr HttpPage,pagesz destroy esi destroy file ret end start _1920024463__lib.rar
Два вопроса: 1. Как наследовать из этого класса? 2. Виртуальные методы есть или нет? Без этих возможностей - это просто структура и набор функций к ней.
Году в 92-м в журнале "Мир ПК" была моя статья о объектном программировании на ассемблере. В TASM, начиная с версии 3.0, введены объектные расширения. Правда, сделаны они не очень удобно, но их легко "заточить" под собственный вкус с помощью банальных макроопределений. В середине 90-х я приводил примеры объектного программирования на ассемблере в FIDO по теме TeachOOP. Писать с помощью ООП действительно удобно, при условии, что иерархии наследования классов продуманы достаточно хорошо.
В Object Creator можно указать, класс родитель, а вот виртуальные методы не поддерживаются, и все члены класса public. Я хочу немного доработать этот проект, чтобы ввести полную поддержку ООП, а сейчас правда- это просто структура с функциями. Но если бы были готовые библиотеки таких структур... Можут кто знает???
Получается: CLASS имя_класса, имя_родителя имя_родителя <> ; Наследуемый класс CMETHOD func1 CMETHOD func2 val1 dd ? val1 dd ? имя_класса ENDS
"Году в 92-м в журнале "Мир ПК" была моя статья о объектном программировани..." С вами полностью согласен, если достаточно хорошо продумать иерархию, то можно написать и суперпроизводитеьные библиотеки классов для программистов на ассемблере, может тогда он станет более популярным?
"Году в 92-м в журнале "Мир ПК" была моя статья о объектном программировани..." С вами полностью согласен, если достаточно хорошо продумать иерархию, то можно написать и суперпроизводитеьные библиотеки классов для программистов на ассемблере, может тогда он станет более популярным?
"Году в 92-м в журнале "Мир ПК" была моя статья о объектном программировани..." С вами полностью согласен, если достаточно хорошо продумать иерархию, то можно написать и суперпроизводитеьные библиотеки классов для программистов на ассемблере, может тогда он станет более популярным?
"Году в 92-м в журнале "Мир ПК" была моя статья о объектном программировани..." С вами полностью согласен, если достаточно хорошо продумать иерархию, то можно написать и суперпроизводитеьные библиотеки классов для программистов на ассемблере, может тогда он станет более популярным?
Ведь на данный момент я не знаю ни одной структуированной библиотеки функций или классов для masm или tasm...
С вами полностью согласен, если достаточно хорошо продумать иерархию, то можно написать и суперпроизводитеьные библиотеки классов для программистов на ассемблере, может тогда он станет более популярным? Вот Вам идея для написания таких библиотек --> {IL -->To-->Asm} Вот вам совет: Кое-что можно позаимствовать из проекта --> IL2ASM его ведут Японские друзья http://mona.sourceforge.jp Также посмотрите проект --> perl2asm --> jpython2asm --> java2asm Особенно рекомендую такое сочетание Eclipse+(perl-OR-python)+BCEL BCEL - проект Apache - по манипулированию байт-кодом налету. Также можете по-извращаться с таким сочетаним 1. Eclipse+(perl-OR-python)+(IDA-движок) Мой сайт: www.jpython.narod.ru
STL это шаблоны, а не классы. Хотя шаблоны и сильно похожи на ассемблерные макросы, но в асме проверки типов нет, а без неё отлаживать такую сложную иерархию тот еще гемор ;-(
А что мешает расширить язык за счет введения новых типов с проверкой, а на счет отладки: ведь есть великий оператор echo.