Текущий архив: 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