Показать полную графическую версию : Мне нужна помощь по написанию асамблера на С++ builder 6.0
maksimka ford
19-08-2003, 23:43
Привет всем! ! ! Мне нужна помощь по написанию асамблера на С++ Builder 6.0. Если это возможно, помогите мне. За ранее БЛАГОДАРЕН....
Prisoner
20-08-2003, 01:22
поисковые системы еще никто не отменял :\. Вторая строка в яндексе на ТУПОЙ запрос "Ассемблер в Builder " выдала на второй строке - http://barmaley.hobi.ru/pub/pub6.shtml . Дальше копаться не стал.
maks 12345789
Идём на http://sandpile.org , скачиваем, описание опкодов - там есть вся необходимая информация об их представлении. 32ух битный ассемблер с интеловским синтаксисом на C++ займёт не более двух тысяч строчек + вывод в необходимый тебе бинарный формат.
Можно исходники nasm или gas почитать.
Prisoner
Читай внимателней вопрос. Не C++ с асмом совместить требуется, а _написать_ ассемблер на C++.
to maks 12345789
В Си есть такое ключевое слово asm. Используешь так:
твой код
.....
asm{
код на ассемблере
}
твой код
maksimka ford
20-08-2003, 02:25
Спосибо чуваки. :up: :)
за то что помогли скачайте ету игрушку если кто еще в нее не играл, просто смешная игра... бегаешь и **** овец http://studax.progz.ru/games/Setup_SvenBomwollen-DL.exe
Добавлено:
ivank только что то на сайте я нефига непонял, если не трудно напеши подробнее.
maks 12345789
Я думаю, что там всё кристально ясно - http://sandpile.org/ia32/index.htm абсолютно полное описание всех опкодов. Вернее того как они строятся. Мне потребовалось где-то 20 минут что бы въехать во все необходимые мне таблички, четыре штуки с опкодами и ещё пара с регистрами - мне хватило для написания того что я хотел - генерации машинного кода на лету для некоторого подмножества VBScript, такая мера оптимизации, это считалось bottleneck'ом. Как оказалось, тормоза, ползли не оттуда. Но хотя бы lex и yacc использовать научился :))
Только ты скажи, что тебе действительно нужно - писать и на C++ и на асме в пределах одной программы, или написать ассемблер на C++? Hint: это разные вещи.
Prisoner
20-08-2003, 06:16
ivank
Имхо чуваку нао было разобраться как использовать код асма для С++, имхо же это совсем не трудно найти :) что и получилось...
Чуваки мне нужно написать сам Ассемблер ! ! ! на С++Builder 6.0
может я отупел?:(
Prisoner
26-08-2003, 16:59
Не кисло... написание языка... красивая задача, но вот проблема - сложная :) Тогда тебе нужно что-то типа "Теория компиляторов", "Машинные языки" и типо того.. у нас в Радике была такая задачка - написать компилятор пасовских файлов (не шибко сложных таких файлов), у меня крыша начала ехать уже на формировании таблиц переменных, констант и прочих имен... а ведь это не считая синтаксического анализа и семантического, причем второй сложнее первого :\. НУ как? Охоту не отбил еще? :) А так - цель благородная %)
Guest а зачем??? Искать приключений на свое мягкое место? Есть куча компиляторов дл я ассемблера.
Prisoner
Не смешите мои тапочки. Какой у ассемблера синтаксис, какая семантика?
Весь синтаксис можно описать нессколькими строчками в EBNF, примерно так:
program ::= statement*
statement ::= label | instruction | data
label ::= id ":"
data ::= ("db"|"dw"|"dd") (string | number)*
instruction ::= id (param (","param (","param)?)?)?
param ::= expression | "[" expression "]"
expression ::= (id|number) (("+"|"-") (id|number))*
Конечно, такая грамматика будет пропускать и некоторые неверные конструкции, но вполне сойдёт - нехитрую семантику асма проверить несложно. Достаточно только знать как можно комбинировать опкоды с регистрами и всё такое (На сэндпайле это всё есть)
Prisoner
26-08-2003, 19:50
Быть может потому как не знаю, что есть EBNF потому и кажется эта задача мне трудной... По поводу тапочек :) - какая ни простая, но и семантика и синтаксис у этого языка есть и сложна она разнообразием если не команд, то количеством (и соответственно комбинациями) операндов. Каждая задачка на первый взгляд проста :). Но против поверхносного изучения мной сего предмета не возражаю - ты шаришь.
Prisoner
Заставили писать компилятор не рассказав даже о том как принято описывать гркмматики? Оригинально. Но в гугле первая же ссылка приводит туде куда надо.
Вообще-то, то что я привёл не есть в точности EBNF - синтаксис немного не такой.
Prisoner
28-08-2003, 02:23
Заставили писать компилятор не рассказав даже о том как принято описывать гркмматики?
Хм... быть может мы просто говорим об одном и том же :). Кто знает? Однако анализатор синтаксиса и семантики у меня получился... только GUIый какой-то... красивый слишком. В следствии чего и тормозной...
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC