LINUX.ORG.RU

Лучше всего встраивается gas.

Но вообще советую задуматься - а надо ли тебе генерить ассемблерный код? Не дешевле будет генерить код на портабельном ассемблере - то бишь, на Си?

anonymous
()

Быстро не получится. Даже в самом с..ном 8 битном контроллере регистровый файл состоит примерно из 16-32 штук регистров. Как вы будете помнить что и где лежит ? Тут думать придётся немного по другому. Ну и так далее. Вас случайно не только только на работу приняли???

bizon_art
()
Ответ на: комментарий от bizon_art

Нее мне вообще это для ВУЗа нужно - задание, так что асм без комментариев(или некий псевдоасм, но на нём не реализуешь вызов функций). Я точно не знаю как глубоко мне нужно знать ассемблер, чтобы реализовать простой язык с функциями, работающий только с целыми числами.

CrazyPit ★★★
() автор топика

Ассемблер учится практически моментально. Тебе же, я так понимаю, выучить надо не его, а набор комманд и конкретные особенности конкретного проца. Быстро не получится. ;(

devinull ★★
()
Ответ на: комментарий от bizon_art

На хера помнить, где что лежит, когда ты пишешь компилятор? Компилятор будет помнить, а тебе только эффективный register scheduling реализовать остаётся.

anonymous
()
Ответ на: комментарий от CrazyPit

Напиши компилятор для JVM тогда. Под стековые машины всегда сильно проще компилять, там промежуточный код очень простой, не надо с трёхадресным кодом и register scheduling заморачиваться.

Я написал много разных компиляторов, под самые разные платформы - но ни для одной не выучил ассемблер на таком уровне, чтобы писать на нём самому (кроме, разве что, VAX, z80 и x86, и то - не так уж много писать пришлось). Не нужно ассемблер знать для написания компилятора, совсем. Надо в справочник поглядывать изредка, ну и знать, сколько регистров есть, и какие они.

anonymous
()
Ответ на: комментарий от CrazyPit

1. Bartlett Publishing, Programming From The Ground Up by Jonathan Bartlett 2004 - самые азы, описание вызова функций, работа с памятью, файлами итп. Наверное даже должно хватить.

2. Wrox, Professional Assembly Language by Richard Blum 2005 - это зэ бест. Все вплоть до оптимизаций с ммх и ссе.

Обе под линуксовый асм. В первой еще была ссылка на доку по abi, там более подробно описывалась реализация функций. Обе скорее всего должны быть в осле.

SatanClaus ★★★
()
Ответ на: комментарий от SatanClaus

Спасибо, попробую найти. Может кто ещё знает что-нибудь что можно точно скачать?

CrazyPit ★★★
() автор топика
Ответ на: комментарий от devinull

Легко. Тупо переписывая справочник в спецификацию, понятную твоему компилятору - сколько какая инструкция стоит, какие регистры изменяются косвенно какой иснтрукцией, и т.п. При этом, переписывая следующую инструкцию, предыдущую можно смело забыть.

Я сейчас много и часто делаю компиляторы микроязычков под JVM. Я не помню практически ни одной инструкции JVM при этом. И меня это не смущает нисколько.

anonymous
()
Ответ на: комментарий от anonymous

А есть FAQ по созданию микроязычков на JVM или ASM от и до? Ну или примерчик с общими словами, чтоб в тему въехать?

anonymous
()
Ответ на: комментарий от anonymous

Мне хватило BCEL и его тулзовины BCELifier.

Про компиляцию под стековые машины - лучше, наверное, таки Dragon Book читать.

anonymous
()
Ответ на: комментарий от CrazyPit

Ася 128782992 шутки ради сделал подобную штуку на питоне. Оно как калькулятор + левые опкоды на ввод и вывод данных. Минут за 5 можно добавить всего, что угодно.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.