Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.04.04;
Скачать: CL | DM;

Вниз

Самодельный ассемблер 0.3beta   Найти похожие ветки 

 
tmtlib   (2010-01-12 15:59) [0]

А тем временем вышла новая версия: http://www.igrodel.ru/tdg3d/peasm-0.3beta.zip

Из нового:...
record msg
 dword hwnd   0x00000000
 dword code   0x00000000
 dword wparam 0x00000000
 dword lparam 0x00000000
 dword time   0x00000000
 dword mousex 0x00000000
 dword mousey 0x00000000
end
...
push @msg.hwnd
call DispatchMessageA
...


можно обращаться как к указателю на запист в целом @msg, так и к её элементам msg.hwnd и т.п.

Улучшенный парсер, более понятное добавление опкодов:
smartparser("push ^",             "text|push~ textval|1");        // PUSH ^var
smartparser("push @",             "text|push~0x textptr|1");      // PUSH @var
smartparser("push 0x??",          "text|6A raw|1");           // PUSH Imm8 "6A 00"
smartparser("push 0x????????",    "text|68 raw|1");           // PUSH IMM32 "68 00 00 00 00"
smartparser("push ???",           "text|50 +reg|1");          // push r32 "50+reg"
smartparser("call 0x????????",    "text|FF15 raw|1");         // CALL r/m32 "ff 15 00 00 00 00"
smartparser("call ?",             "text|FF15 dll|1");         // CALL r/m32 "ff 15 00 00 00 00"
smartparser("jmp 0x????????",     "text|E9 raw|1");               // JMP
smartparser("jmp ?",              "text|E9 label|1");             // JMP
smartparser("mov ^ eax",          "text|mov~0: textptr|1 text|~eax"); // MOV ^var,eax
smartparser("mov 0:???????? eax", "text|A3 raw|1");               // MOV ptr,eax
smartparser("mov eax ^",          "text|mov~eax~0: textptr|2");       // MOV eax, ^var
smartparser("mov eax 0:????????", "text|A1 raw|2");               // MOV eax, ptr
smartparser("mov eax @",          "text|B8 +reg|1 ptr|2");


 
Alkid ©   (2010-01-12 20:48) [1]

Гм. А зачем самодельный ассемблер? Существующих не хватает?


 
Сергей М. ©   (2010-01-12 20:56) [2]

Самоделкин)


 
tmtlib   (2010-01-12 21:54) [3]

Существующих хватает. Интересно стало. Плюс открытый код для интересующихся.


 
@!!ex ©   (2010-01-12 22:00) [4]

Умеет в маш коды компилироваться?


 
tmtlib   (2010-01-12 22:20) [5]

себя пока не скомпилирует - до этого далеко


 
Alkid ©   (2010-01-13 09:48) [6]


> tmtlib   (12.01.10 21:54) [3]

А почему именно ассемблер? :)
Лично я бы предпочел придумать какой-нибудь ЯВУ :)


 
tmtlib   (2010-01-13 10:28) [7]


> А почему именно ассемблер? :)
> Лично я бы предпочел придумать какой-нибудь ЯВУ :)

я x86 ассемблер не знаю, поэтому сразу с наскока высокоуровневый язык в машинные коды даже и не пробовал. Для начала ASM->EXE, затем PASCAL->ASM->EXE заодно изучу x86, будет не только компилятор pascal, но и ассемблер asm. Опять же вставки ассемблерные делать =)

Начинал не с полного нуля. Написанный мною годом ранее линкер и дизассемблер под микропроцессор adsp21xx теперь кажутся игрушечными. Зато на простеньком dsp-шном ассемблере понаписал такууууую кучу... в хорошем смысле!

p.s. Добавил исходник на google.code
http://code.google.com/p/pe-asm/


 
oxffff ©   (2010-01-13 11:08) [8]

Вопрос по http://code.google.com/p/pe-asm/


> I never read theory about assemblers and compilers, so it
> is not usual assembler source code based on copy-and-paste
> from books and other open source projects. It is fully written
> from the scratch. Use, learn and fun.


Почему чтение мат. части обязательно ведет к copy&paste?

P.S. Это не наезд. Совсем даже неплохо, что есть люди которым это интересно. И которые размышляют сами над решением проблемы.


 
KSergey ©   (2010-01-13 11:40) [9]

> oxffff ©   (13.01.10 11:08) [8]
> это интересно. И которые размышляют сами над решением проблемы.
>

Ох, не знаю.
Когда я узнал, что в мире существует документация, более того - в ней все уже написано и все мои "мегаидеи" уже "изобрели" и даже много сверх того... не знаю что тут дописать.
Хотя в 15..16 лет - это все очень здорово, согласен.
А вот дальше - уже засмеять могут, и правильно.


 
@!!ex ©   (2010-01-13 11:45) [10]

> [9] KSergey ©   (13.01.10 11:40)

не правильно.
Самообучение на основе собственных велосипедов много стоит.
Хотя, конечно, после этого почитать маны нужно, чтобы свои же ошибки проверить.


 
oxffff ©   (2010-01-13 11:52) [11]


> KSergey ©   (13.01.10 11:40) [9]


Мой хороший знакомый сказал что большинство гениальных открытий были до 30 (я честное слово, не задавался целью подвергнуть анализу его утверждение). Но основная его мысль заключалась в следующем.
При чтении спец. литературы у читателя формируется и развивается некакая направленность мышления, ограничивая его в способах решения.
Поэтому я  стороннник и собственных удачных решений и признаных мировых решений. Более того я уверен, что среди 1000 человек найдутся такие, которые решат проблему лучше(возможно объедения свои решения с книжными). Ну а остальные(их безусловно будет большинство) поймут, что мировые решения "лучше", но продолжат исследования.
Вот такое мое IMHO.

P.S. Open your mind как говорится.


 
tmtlib   (2010-01-13 12:10) [12]


> Почему чтение мат. части обязательно ведет к copy&paste?

ляпнул для красоты, английский подвёл

Гениального в исходниках моих ничего нет, основывается всё на статье про машинный код (http://www.citforum.ru/programming/windows/machine_code/).

А читать приходится только по dsp.


 
KSergey ©   (2010-01-13 12:12) [13]

> oxffff ©   (13.01.10 11:52) [11]
> мировых решений. Более того я уверен, что среди 1000 человек
> найдутся такие, которые решат проблему лучше(возможно объедения

Тут надо определиться что есть лучше
В моем понимании - это эффективнее, в основном итоге - по экономическим показателям.

Впрочем, можешь делать лучше - возглавь дело и делай лучше. Так что между "могут" и "сделают" - гигантская разница.


 
oxffff ©   (2010-01-13 12:22) [14]


> Впрочем, можешь делать лучше - возглавь дело и делай лучше.
>  Так что между "могут" и "сделают" - гигантская разница.
>


Речь идет о закостенелости мышления в рамках одной теории. Я не говорю что это плохо. Но каждая теория это лишь теория не имеющая ничего общего с действительностью(гомоморфизм, но не изоморфизм).
А мозг тренировать нужно разными подходами в том числе и своими.
Чтение литературы накладывает на мозг "алгебру других", а мозг ее впитывает.
И будет стараться работать по этой алгебре(по скольку он знает 100%решение и выбирает простой путь. Я читал недавно об этом).
Вообщем не стоит себя ограничивать. Но также полная глупость считать себя самым умным. Опять же это мое IMHO.


 
oxffff ©   (2010-01-13 12:24) [15]


> Но каждая теория это лишь теория не имеющая ничего общего
> с действительностью(гомоморфизм, но не изоморфизм).


Не мое. Из такой то книге по теории множеств. :)


 
tmtlib   (2010-01-13 12:24) [16]

В мечтах сделать урезанный вариант delphi 3. Разумеется несовместимый с delphi и с freepascal. Но зато простой-препростой. Минимум компонентов (формочка, кнопка, скроллбар, едитбокс и т.п.), обращение к api, экзешники по несколько килобайт.

Ну а самое главное уместить это дело в килобайт сто исходников - вот это будет дело =) Реально это или нет? Один хороший преподаватель учил прогнозированию - нужен ещё множитель эдак в два а лучше в четыре раза. Тогда сойдётся. Надо думать над уменьшением.

А как бонус - неоптимизированный машинный код и баги. Всё это дело прекрыть оформлением Windows Vista и т.п.


 
oxffff ©   (2010-01-13 12:24) [17]


>  книге


книги


 
oxffff ©   (2010-01-13 12:32) [18]


> tmtlib   (13.01.10 12:24) [16]


Что совсем даже неплохо.


 
@!!ex ©   (2010-01-13 13:59) [19]

> [13] KSergey ©   (13.01.10 12:12)
> Тут надо определиться что есть лучше
> В моем понимании - это эффективнее, в основном итоге - по
> экономическим показателям.
>
> Впрочем, можешь делать лучше - возглавь дело и делай лучше.
> Так что между "могут" и "сделают" - гигантская разница.

Тут надо определится кто вам нужен.
Если иненер решающий решенные задачи, то действительно чтение чужих исследований решает.
Если нужен исследоатель способный решать новые задачи, но чтение по прежнему рулит, но нужно иметь не ограниченное рамками мышление, которое и развивается при изобретении велосипедов.


 
Alkid ©   (2010-01-13 17:10) [20]


> tmtlib   (13.01.10 12:24) [16]

Хочешь сократить размер исходного кода - пиши на Лиспе :)



Страницы: 1 вся ветка

Текущий архив: 2010.04.04;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.009 c
2-1264742431
Б
2010-01-29 08:20
2010.04.04
AlphaBlend без TransparentColor.


15-1263395893
El
2010-01-13 18:18
2010.04.04
Старый Новый год


15-1263399757
b/@.
2010-01-13 19:22
2010.04.04
Как вы относитесь к рыжим ?


15-1263250575
Германн
2010-01-12 01:56
2010.04.04
ShowModal или где?


3-1222293772
ЮЮ
2008-09-25 02:02
2010.04.04
MS SQL. inserted и deleted таблицы в InstedOfUpdate триггере