Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 | 4 | 5 | 6 |

 

  Вопрос: Проект Ассемблер в VB Добавлено: 11.06.04 21:13  

Автор вопроса:  @CyRax PTR | Web-сайт: basicproduction.nm.ru/ | ICQ: 204447456 

Ответить

  Ответы Всего ответов: 77  

Номер ответа: 31
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #31
Добавлено: 12.06.04 15:25
Fallout,
 Что тебя заело с эти м инлайном.

>МАСМ нужен только при компиляции программы
 Никто и не сомневался что МАСМ нужен именно для компиляции. Ведь в том то и фишка, что в InLine нет встроенного компилятора. Посмотри мой пример. Тебе не нравится мой компилятор? Он содержит ошибки, недоработки или там чего то нехватает? Не проблема. Компилятор написан на Бейсике. Исправляй прямо на месте.

>твой инлайн асм код будет реальным АСМ кодом!
 А уменя по твоему какой, тряпошный?

===

 Конечно синтаксис этого АСМ очень скуден. Но так ведь он создавался как демонстрационный, в расчёте на то что те кто будет им заниматся допишут поддержку нехватающих мнемоник.

===

GSerg,
 Насколько я понял, у тебя уже была идея создания встроенного компилятора АСМ в ВБ. Только она не получила должного внимания. Считай что это второй шанс. На этом сайте ассемблерщиков чуть побольше чем на VbStreets (правда уровень знаний не очень высокий, но главное ведь заинтересованность).
 Как ты смотришь на то чтобы подсоединить свой код передачи >4 параметров к этому Ассемблеру? Или ты свой АСМ пишешь?
 Если тебя волнует копирайт, то это не проблема. Это я тестовый проект назвал своей маркой, а конечный продукт будет общим.

Ответить

Номер ответа: 32
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #32
Добавлено: 12.06.04 17:59
 Кстати, писать на АСМ можно и в дизайн-тайме.
Это будет выглядеть так:
 ;Dim BinSource as String
 BinSource=BinSource & MOV_Code("EAX","&H1";)
 и т.д.

Ответить

Номер ответа: 33
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #33
Добавлено: 12.06.04 22:51
CyRax > А нахрена оно тебе? Ты что на АСМ через день кодишь? Или интересно просто?

Хочу понять :)

To GSerg, спасибки, но мне не нужны ссылки на твои статьи, мне это не нужно...
Я вот этого не могу понять, почему?

(Из примера DynamicCalls)

*** PutMem4 hGlobalOffset, FuncPointer - hGlobalOffset - 4 ***

Ответить

Номер ответа: 34
Автор ответа:
 Fallout



Вопросов: 10
Ответов: 387
 Web-сайт: mudator.by.ru
 Профиль | | #34
Добавлено: 12.06.04 23:56
Просто тогда не понимаю накой такой проект .... ведь основная задача должна быть БЫСТРОДЕЙСТВИЕ программы.... а с встроенным компилятором проще уж тогда просто на ВБ писать....

Ответить

Номер ответа: 35
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #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-сайт: basicproduction.nm.ru/
 Профиль | | #37
Добавлено: 13.06.04 12:10
Fallout,
 Блин, ты хоть бы заглянул внутрь проекта. Он ведь не каждую инструкцию компилирует перед выполнением, а сразу весь код. Сам компилятор двухпроходный. Сначала транслирует мнемонику в опкоды, а затем считает адреса для переходов.
 Компилятор и не расчитан на что-то сложное. Но ты попрбуй заставь VB-шника МАСМ закачать. Думаешь он у всех есть? Или он должен подходить лично тебе? Так я и не заставляю тебя в нём программы писать. Хотелось сделать его доступным для всех, а не только для умников и "умников".

 А вообще. Полностью поддерживаю Fallout.
Объявление.
 Программисты на VB! Хотите программить на АСМ в VB? Закачайте Inline ASM и MASM.

 Как ты думаешь, сколько человек бросится это закачивать? Да нисколько. Никто не будет програмить на АСМ. А вот если сделать так, чтобы это проще простого, тогда не все, а хотя бы способные VB-шники им заинтересуются. А вот когда они уже поймут что к чему, тогда они и сами на InLine перейдут. Разве нет?

Ответить

Номер ответа: 38
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #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-сайт: basicproduction.nm.ru/
 Профиль | | #40
Добавлено: 13.06.04 16:30
 ;Dimm,
 Интересуешся ASM в VB?

Ответить

Номер ответа: 41
Автор ответа:
 Дмитрий Щапов



Вопросов: 71
Ответов: 321
 Профиль | | #41 Добавлено: 13.06.04 16:40
@CyRax PTR> Интересуешся, но не могу смело сказать что "Разбераешся"

Ответить

Номер ответа: 42
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #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(сдвиг вправо).
 
 ===

 ;Dimm, для тебя и создаём АСМ, в котором легко разобраться. Будешь участвовать в разработке?

Ответить

Номер ответа: 43
Автор ответа:
 Fallout



Вопросов: 10
Ответов: 387
 Web-сайт: mudator.by.ru
 Профиль | | #43
Добавлено: 13.06.04 22:53
2@CyRax PTR а вот язвить не надо...

Ответить

Номер ответа: 44
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #44
Добавлено: 14.06.04 00:53
 Fallout,
 
 Выходные не показатель, но если и в будни будет такая заинтересованность, то VB ASM умрёт не родившись. А ты ещё масла в огонь подливаешь.
 Мне то всё равно. Просто интересно как оно там всё устроенно и по какому принципу работает. Я на таких людей в принципе и расчитываю. За проект этот не цепляюсь. У меня уже есть один.

===
 All,
 Кстати, если у кого возникнут какие то вопросы по исходнику компилятора и исполнителя - не стесняйтесь. Там нет ничего сверхестественного. Все до банальности просто. Заниматься поиском опкодов может любой. Конечно нужно будет пройти предварительный инструктаж. Я его обеспечу.
Всем кому интересно, но он не уверен в своих силах, просто скажите что вас беспокоит. Я дам вам разъяснения по вашим вопросам. Если не смогу, то спрошу у более знающих людей. На том же masmforum.com или wasm.ru

===
 Я пока ещё поддерживаю этот проект. Поэтому скоро будут готовы дальние переходы.
 Ещё бы неплохо узнать как получать локальные перемнные и как работать со строками.

Ответить

Номер ответа: 45
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #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 больше не поддерживаются.

Ответить

Страница: 1 | 2 | 3 | 4 | 5 | 6 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам