Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Мне нужна помощь по написанию асамблера на С++ builder 6.0 (http://forum.oszone.net/showthread.php?t=29668)

maksimka ford 19-08-2003 23:43 205241

Привет всем! ! ! Мне нужна помощь по написанию асамблера на С++ Builder 6.0. Если это возможно, помогите мне. За ранее БЛАГОДАРЕН....

Prisoner 20-08-2003 01:22 205242

поисковые системы еще никто не отменял :\. Вторая строка в яндексе на ТУПОЙ запрос "Ассемблер в Builder " выдала на второй строке - http://barmaley.hobi.ru/pub/pub6.shtml . Дальше копаться не стал.

ivank 20-08-2003 01:57 205243

maks 12345789
Идём на http://sandpile.org , скачиваем, описание опкодов - там есть вся необходимая информация об их представлении. 32ух битный ассемблер с интеловским синтаксисом на C++ займёт не более двух тысяч строчек + вывод в необходимый тебе бинарный формат.

Можно исходники nasm или gas почитать.

Prisoner
Читай внимателней вопрос. Не C++ с асмом совместить требуется, а _написать_ ассемблер на C++.

bgg0408 20-08-2003 01:58 205244

to maks 12345789
В Си есть такое ключевое слово asm. Используешь так:

твой код
.....
asm{
код на ассемблере
}
твой код

maksimka ford 20-08-2003 02:25 205245

Спосибо чуваки. :up: :)






за то что помогли скачайте ету игрушку если кто еще в нее не играл, просто смешная игра... бегаешь и **** овец http://studax.progz.ru/games/Setup_SvenBomwollen-DL.exe


Добавлено:

ivank только что то на сайте я нефига непонял, если не трудно напеши подробнее.

ivank 20-08-2003 05:36 205246

maks 12345789
Я думаю, что там всё кристально ясно - http://sandpile.org/ia32/index.htm абсолютно полное описание всех опкодов. Вернее того как они строятся. Мне потребовалось где-то 20 минут что бы въехать во все необходимые мне таблички, четыре штуки с опкодами и ещё пара с регистрами - мне хватило для написания того что я хотел - генерации машинного кода на лету для некоторого подмножества VBScript, такая мера оптимизации, это считалось bottleneck'ом. Как оказалось, тормоза, ползли не оттуда. Но хотя бы lex и yacc использовать научился :))

Только ты скажи, что тебе действительно нужно - писать и на C++ и на асме в пределах одной программы, или написать ассемблер на C++? Hint: это разные вещи.

Prisoner 20-08-2003 06:16 205247

ivank
Имхо чуваку нао было разобраться как использовать код асма для С++, имхо же это совсем не трудно найти :) что и получилось...

Guest 25-08-2003 22:03 205248

Чуваки мне нужно написать сам Ассемблер ! ! ! на С++Builder 6.0

может я отупел?:(

Prisoner 26-08-2003 16:59 205249

Не кисло... написание языка... красивая задача, но вот проблема - сложная :) Тогда тебе нужно что-то типа "Теория компиляторов", "Машинные языки" и типо того.. у нас в Радике была такая задачка - написать компилятор пасовских файлов (не шибко сложных таких файлов), у меня крыша начала ехать уже на формировании таблиц переменных, констант и прочих имен... а ведь это не считая синтаксического анализа и семантического, причем второй сложнее первого :\. НУ как? Охоту не отбил еще? :) А так - цель благородная %)

JCooper 26-08-2003 17:48 205250

Guest а зачем??? Искать приключений на свое мягкое место? Есть куча компиляторов дл я ассемблера.

ivank 26-08-2003 19:32 205251

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 205252

Быть может потому как не знаю, что есть EBNF потому и кажется эта задача мне трудной... По поводу тапочек :) - какая ни простая, но и семантика и синтаксис у этого языка есть и сложна она разнообразием если не команд, то количеством (и соответственно комбинациями) операндов. Каждая задачка на первый взгляд проста :). Но против поверхносного изучения мной сего предмета не возражаю - ты шаришь.

ivank 26-08-2003 20:12 205253

Prisoner
Заставили писать компилятор не рассказав даже о том как принято описывать гркмматики? Оригинально. Но в гугле первая же ссылка приводит туде куда надо.

Вообще-то, то что я привёл не есть в точности EBNF - синтаксис немного не такой.

Prisoner 28-08-2003 02:23 205254

Цитата:

Заставили писать компилятор не рассказав даже о том как принято описывать гркмматики?
Хм... быть может мы просто говорим об одном и том же :). Кто знает? Однако анализатор синтаксиса и семантики у меня получился... только GUIый какой-то... красивый слишком. В следствии чего и тормозной...


Время: 15:52.

Время: 15:52.
© OSzone.net 2001-