Страница: 1 | 2 | 3 | 4 | 5 | 6 |
Вопрос: Проект Ассемблер в VB
Добавлено: 11.06.04 21:13
Автор вопроса: @CyRax PTR | Web-сайт:
Ответы
Всего ответов: 77
Номер ответа: 31
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #31
Добавлено: 12.06.04 15:25
Fallout,
Что тебя заело с эти м инлайном.
>МАСМ нужен только при компиляции программы
Никто и не сомневался что МАСМ нужен именно для компиляции. Ведь в том то и фишка, что в InLine нет встроенного компилятора. Посмотри мой пример. Тебе не нравится мой компилятор? Он содержит ошибки, недоработки или там чего то нехватает? Не проблема. Компилятор написан на Бейсике. Исправляй прямо на месте.
>твой инлайн асм код будет реальным АСМ кодом!
А уменя по твоему какой, тряпошный?
===
Конечно синтаксис этого АСМ очень скуден. Но так ведь он создавался как демонстрационный, в расчёте на то что те кто будет им заниматся допишут поддержку нехватающих мнемоник.
===
GSerg,
Насколько я понял, у тебя уже была идея создания встроенного компилятора АСМ в ВБ. Только она не получила должного внимания. Считай что это второй шанс. На этом сайте ассемблерщиков чуть побольше чем на VbStreets (правда уровень знаний не очень высокий, но главное ведь заинтересованность).
Как ты смотришь на то чтобы подсоединить свой код передачи >4 параметров к этому Ассемблеру? Или ты свой АСМ пишешь?
Если тебя волнует копирайт, то это не проблема. Это я тестовый проект назвал своей маркой, а конечный продукт будет общим.
Номер ответа: 32
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #32
Добавлено: 12.06.04 17:59
Кстати, писать на АСМ можно и в дизайн-тайме.
Это будет выглядеть так:
 im BinSource as String
BinSource=BinSource & MOV_Code("EAX","&H1"
и т.д.
Номер ответа: 33
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #33
Добавлено: 12.06.04 22:51
CyRax > А нахрена оно тебе? Ты что на АСМ через день кодишь? Или интересно просто?
Хочу понять
To GSerg, спасибки, но мне не нужны ссылки на твои статьи, мне это не нужно...
Я вот этого не могу понять, почему?
(Из примера DynamicCalls)
*** PutMem4 hGlobalOffset, FuncPointer - hGlobalOffset - 4 ***
Номер ответа: 34
Автор ответа:
Fallout
Вопросов: 10
Ответов: 387
Web-сайт:
Профиль | | #34
Добавлено: 12.06.04 23:56
Просто тогда не понимаю накой такой проект .... ведь основная задача должна быть БЫСТРОДЕЙСТВИЕ программы.... а с встроенным компилятором проще уж тогда просто на ВБ писать....
Номер ответа: 35
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #35
Добавлено: 13.06.04 01:03
По мне, идея так должна быть даже не в способе компиляции, а в библиотеке кодов, которые любой, не знающий ассемблер, человек смог бы применить в своих приложениях... Т.е. сделать часто требующиеся/встречающиеся алгоритмы - на АСМе...
Номер ответа: 36
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #36
Добавлено: 13.06.04 07:50
2 sne
Существует несколько операторов Call, если не ошибаюсь, 4. Один из них (используемый мною) - call relative near. В качестве операнда выступает относительный адрес функции. Относительный адрес - это количество байт между местом вызова и местом назначения. Вот оно и подсчитывается сей командой. Если бы я использовал другой Call, расчёт был бы другой. Но этот мне больше нравится.
CyRax
Я пишу диплом. Чтоб его... Ну ладно, не будем о грустном.
Копирайт - это хорошо
Я вообще-то планировал создать add-in для VB, который бы представлял собой asm-компилятор, но создающий не exe, а компилированные варианты отдельных функций (прямо начиная с push ebp), и чтобы позволял тут же засунуть их в ресурсы проекта.
All
Я вижу две причины создавать asm в VB - во-первых, скорость, и во-вторых, "чтобы было". Я руководствуюсь обеими. Поэтому и не поддерживаю идею компиляции asm-мнемоник на лету. И против антивируса не поможет - даже хуже, антивирус возьмёт за ориентир компилирующий модуль, и все проги, его использующие, будут трактоваться как вирусы.
Да, чуть не забыл. В жизни не прочитал ни одной книжки по асму (по VB, впрочем, тоже). Так что знаний у меня в этом смысле тоже мало. Всё методом тыка. Зато потом чувство глубокого морального удовлетворения от того, что сам во всём разобрался, и оно ещё и работает
Номер ответа: 37
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #37
Добавлено: 13.06.04 12:10
Fallout,
Блин, ты хоть бы заглянул внутрь проекта. Он ведь не каждую инструкцию компилирует перед выполнением, а сразу весь код. Сам компилятор двухпроходный. Сначала транслирует мнемонику в опкоды, а затем считает адреса для переходов.
Компилятор и не расчитан на что-то сложное. Но ты попрбуй заставь VB-шника МАСМ закачать. Думаешь он у всех есть? Или он должен подходить лично тебе? Так я и не заставляю тебя в нём программы писать. Хотелось сделать его доступным для всех, а не только для умников и "умников".
А вообще. Полностью поддерживаю Fallout.
Объявление.
Программисты на VB! Хотите программить на АСМ в VB? Закачайте Inline ASM и MASM.
Как ты думаешь, сколько человек бросится это закачивать? Да нисколько. Никто не будет програмить на АСМ. А вот если сделать так, чтобы это проще простого, тогда не все, а хотя бы способные VB-шники им заинтересуются. А вот когда они уже поймут что к чему, тогда они и сами на InLine перейдут. Разве нет?
Номер ответа: 38
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #38
Добавлено: 13.06.04 13:12
Исправил ошибку неправильной трансляции [ESP]
http://basicproduction.nm.ru/ASM/vbasmp012.rar
Пример:
Было:
8B/4C/4 mov ecx,[esp+4]
Стало:
8B/4C/24/4 mov ecx,[esp+4]
Номер ответа: 39
Автор ответа:
Дмитрий Щапов
Вопросов: 71
Ответов: 321
Профиль | | #39
Добавлено: 13.06.04 15:45
>Если тебя волнует копирайт, то это не проблема. Это я тестовый проект назвал своей маркой, а конечный продукт будет общим.
К слову: впрочем и самому изменить все данные(фирма, про-тель) секундное дело...
Номер ответа: 40
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #40
Добавлено: 13.06.04 16:30
 imm,
Интересуешся ASM в VB?
Номер ответа: 41
Автор ответа:
Дмитрий Щапов
Вопросов: 71
Ответов: 321
Профиль | | #41
Добавлено: 13.06.04 16:40
@CyRax PTR> Интересуешся, но не могу смело сказать что "Разбераешся"
Номер ответа: 42
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #42
Добавлено: 13.06.04 17:16
У меня ещё появилась идея интерпретации мнемоник в виде понятном для программиста на BASIC.
Регистры можно представить в виде букв латинского алфавита.
Например:
MOV EAX,1 можно записывать так: A=1
ADD EAX,2 -> A=A+2
JMP Lbl -> GOTO Lbl
CMP EAX,0
JE Lbl
-> IF A=0 THEN GOTO Lbl
CMP EAX,5
JNE Llb
-> IF A<>5 THEN GOTO Lbl
MOV EAX,[EBX] -> A=VARPTR(B) и т.д.
CALL ECX -> CALL E или GOSUB E
Что вы на это скажете? Чем не БЕЙСИК? FAST BASIC for VB например.
===
Теперь задание.
Кто возьмётся за кодирование мнемоник сдвигов?
Таких как SAL,SHL,RCL,ROL(сдвиг влево), SAR,SHR,RCR,ROR(сдвиг вправо).
===
 imm, для тебя и создаём АСМ, в котором легко разобраться. Будешь участвовать в разработке?
Номер ответа: 43
Автор ответа:
Fallout
Вопросов: 10
Ответов: 387
Web-сайт:
Профиль | | #43
Добавлено: 13.06.04 22:53
2@CyRax PTR а вот язвить не надо...
Номер ответа: 44
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #44
Добавлено: 14.06.04 00:53
Fallout,
Выходные не показатель, но если и в будни будет такая заинтересованность, то VB ASM умрёт не родившись. А ты ещё масла в огонь подливаешь.
Мне то всё равно. Просто интересно как оно там всё устроенно и по какому принципу работает. Я на таких людей в принципе и расчитываю. За проект этот не цепляюсь. У меня уже есть один.
===
All,
Кстати, если у кого возникнут какие то вопросы по исходнику компилятора и исполнителя - не стесняйтесь. Там нет ничего сверхестественного. Все до банальности просто. Заниматься поиском опкодов может любой. Конечно нужно будет пройти предварительный инструктаж. Я его обеспечу.
Всем кому интересно, но он не уверен в своих силах, просто скажите что вас беспокоит. Я дам вам разъяснения по вашим вопросам. Если не смогу, то спрошу у более знающих людей. На том же masmforum.com или wasm.ru
===
Я пока ещё поддерживаю этот проект. Поэтому скоро будут готовы дальние переходы.
Ещё бы неплохо узнать как получать локальные перемнные и как работать со строками.
Номер ответа: 45
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #45
Добавлено: 14.06.04 21:57
Обновление.
http://basicproduction.nm.ru/ASM/vbasmp021.rar
ASM 0.2.1
=========
Отличия от ASM 0.1.2
1. Переходы типа SHORT заменены на переходы типа NEAR.
Компилятор больше не создаёт переходов типа SHORT.
2. Переходы JECXZ и JCXZ больше не поддерживаются.