К списку форумов К списку вопросов
Ассемблер вашей мечты
Sabrian
03.04.2004 - 13:21
В свободное от отдыха время я занимаюсь тем ,что пишу компилятор макроассемблера. Естественно язык сильно отличается от классического MASM (нафига второй MASM?). С огромным удовольствием я бы выслушал ваши мысли относительно прогрессивного, современного языка ассемблера.
SilverEye
1 - 03.04.2004 - 13:25
Прогрессивный ассемблер должен быть интуитивно понятен, должен быть похож на классические ассемблеры. А у тебя он вырождается в высокоуровневый язык. :)
Sabrian
2 - 03.04.2004 - 13:34
Он имеет весокоуровневые структуры для облегчения описания низкоуровневых обьектов, это не одно и тоже. Кроме того MASM так же имеет все эти средства (ну почти все) но конструкции MASM меннее гибки и удобны, кроме того они менее строги.
Kidsmile
3 - 03.04.2004 - 16:09
А где взять Самый современный Ассемблер?
Sabrian
4 - 03.04.2004 - 16:17
:)))) Ну, он в разработке. Его можно взять (то что он сейчас из себя представляет) только от души угостив меня пивом :))) На самом деле я хотел спросить каков по вашему должен быть идеальный ассемблер, что бы знать как далее развивать свой.
palermo
5 - 03.04.2004 - 17:16
 Компилятор это конечно хорошо, хороший IDE ему бы не повредил... А вот насчет прогрессивности, как насчет классов?
Sabrian
6 - 03.04.2004 - 19:59
В асме?!!!! Меня и мой компилятор в желтый дом на лечение отдадут :)
ИМХО ассемблер не предназначен для таких задач где могут потребоваться классы
Sabrian
7 - 03.04.2004 - 20:01
А вообще есть же препроцессор, в принципе достаточно описать пяток макросов....
Пепелац
8 - 03.04.2004 - 21:49
Если в нём будет функция дизассемблирования, и из дизассемблированного кода можно будет опять сделать екзешник(чего нет в обычном асме)- это было бы здорово:)
А если бы дизассемблирование было бы не простое, а последовательновыполнимое(как в Иде) - цены б ему не было!
?
9 - 04.04.2004 - 10:04
ты пишешь действительно КОМПИЛЯТОР?? или просто оболочку, что то типа делфи для Object Pascal?
Sabrian
10 - 04.04.2004 - 13:00
Действительно КОМПИЛЯТОР! Консольный.
_van
11 - 05.04.2004 - 13:27
Ха-ха-ха: классы в асме
Имхо прогрессивный ассемблер должен иметь удобную и полную интерактивную справку.
`
P.S:.А мне когдато сон приснился что я занимаюсь как-раз таки идеей интерактивности для ide компилятора асма.
UE
12 - 05.04.2004 - 14:42
хм... так обсуждается компилятор или ide? А то тут про справку интерактивную уже пошла речь...
Sabrian
13 - 05.04.2004 - 14:43
КОМПИЛЯТОР!!!!!!!!!!!! Какая ide к черту?
van1
14 - 05.04.2004 - 15:36
На кой черт асму КОМПИЛЯТОР?!!!!!!!!!!!!
А вот и не подеремся, а вот и не подеремся...
Объясни ламеру если я не прав что может быть проще асмовского компилятора:
асмовский компилятор должен находить строчки вида:
[метка:]команда [параметры] и формировать выходной файл записывая соответствующие такой строчки байты кода(формат соответствия символьных команд находится в твоей статической таблице созданной тобой по документации процессоров 80x86.
`
Вижу только следующие, стандартно, решаемые сложности:
1)Метки назад, вперед по тексту исходника(считаю что несложно)
2)Определения переменных(считаю что несложно)
3)Макросы(считаю что сложно, но мне кажется что может быть и не очень)
Nex
15 - 05.04.2004 - 15:45
Так мож всё-таки IDE? ;)
UE
16 - 05.04.2004 - 15:48
Я ситуацию понял таким образом, что есть мысль создать асм с более гибкими и широкими возможностями генерации конструкций, чем доступны сейчас. Хотя, afaik, макросы в masm'е очень всего много позволяют делать... Так что вопрос надо ставить так: что вам не хватало до сих пор?
_van
17 - 05.04.2004 - 15:52
Имхо асму нужна только ide(конечно, со множеством встроенных фишек)
пошаговый дебагер(сложно, но в твоем проекте нафига?), конвертор exe->asm, хорошая интерактивная справка
`
Или мы тут нетак что-то понимаем, "В чем сила, Брат"?
что не сделанно в masm, за что ты решил взяться?
_van
18 - 05.04.2004 - 15:58
Имхо я понял, может быть сила в кросплатформенности? чтобы на сотовом или микроконтроллере не с джавой париться, а сразу на гарантированном асме катать.
Пепелац
19 - 05.04.2004 - 16:16
(18)Кроссплатформенный асм?Это что-то новое:))
UE
20 - 05.04.2004 - 16:27
2_van, не, ну ведь тогда это уже не асм будет...
Sabrian
21 - 07.04.2004 - 16:23
Возможно я и возьмусь (даже более того - наверняка) за ide, но лишь только тогда, когда закончу компилятор. А сакросы в Masm/Tasm мне всем не нравятся, они представляют собой простой генератор текста на основе шаблона, Masm в целом имеет достачно кривой синтаксис. Моя идея состоит в том, чтобы написать интерпретатор высокого уровня, обрабатывающий некий скрипт (исходник), когда по мере интерпретации скрипта встречается очередная машинная команда, то она транслируется. Этот метаязык скрипта (макроассемблера) пожалуй более всего похож на Perl, он имеет 3 типа + массивы (хеш-таблицы). Фактически вставка макроса - это вызов функции метаязыка, а не генерация текста.
Sabrian
22 - 07.04.2004 - 16:26
Про кросс-платформенность: ну никто не запрещает повводить кучу макросов и писать хоть под под Siemens SL55, хоть под Itanium II но компилить то все-равно на PC....
_van
23 - 20.04.2004 - 16:55
Ну и как дела?
Верно ли что ты принялся писать компилятор твоего_языка_ассемблер и хотел бы услышать советы какие детали синтаксиса там реализовать?
`
Имхо мне кажется что в твоем компиляторе элементы твоего синтаксиса должны преобразовываться в стандартный синтаксис masm, а дальше использоваться masm из командной строки. Тогда я не понимаю чем неустраивает твой файл макросов подключаемый в каждый проект?
sbars
24 - 22.04.2004 - 00:41
Кроссплатформенный asm вообще-то бывает.
А классы в ассемблере тоже уже не шутка - смотри .net
sergodream
25 - 22.04.2004 - 11:28
Поистине кроссплатформенных языков НЕТ! даже NET. Всегда выйдет какая-нибудь заморочка.
Насчет компилятора это дело конечно твое но уж больно не продуктивно.
Переделай макросы лучше которые тебе не нравятся, напиши новые, как например Four-F сделал кмд кит.
На васме.ру ребята сейчас свой коммон контрол делают. Помоги RadAsm доделать, или хатчу с масм32. И будет тебе счастью. Имхо, сделать компилятор лучше чем MS, врядли получится, а если на него что-нибудь вешать сверху, так это уже все есть.
А классы в асме уже деют.
c3df
26 - 22.04.2004 - 21:21
Если Ассемблер оснастить всем, что не хватает, то он превратится в СИ.
vinsent
27 - 23.04.2004 - 12:13
а нафина вобще козе боян?
GNU GCC рулит неподецки, собирая C/C++-шный код под кучу архитектур. Еще один x86-ассемблер? ЗАЧЕМ?
к тому же еще есть ocaml :)
Sabrian
28 - 23.04.2004 - 17:05
У меня появилась идейка, можно написать .Net асеемблер создающий MSIL код, видимо это будет первый ассемблер такого рода.
Bronya
29 - 24.04.2004 - 11:44
В tms320c6000 серии процессоров texas instruments считаю самый клевый макроассемблер! Правда он такой клевый в основном благодаря своей архитектуре.
.
Простая свертка может выглядеть, например, так:
myproc: .cproc ptr_a, ptr_b, len
//--------------------------------
 .reg val, rez, cnt
//--------------------------------
   mvk .1 len, cnt
loop:
   mul .1 *ptr_a++,*ptr_b++,val
|| add .1 val, rez, rez
|| sub .2 cnt,1,cnt
|| [cnt] b loop
   nop 5
//--------------------------------
 .return rez
 .endproc
.
Директивы препроцесcора
.cproc клево передает параметры через регистры
.reg подбирает регистры под локальные переменные
.1,.2 подбирают блоки парралельной обработки
[] задают условия
.return возвращает результат
.
Язык просто насыщен подобными феньками, что делает его чрезвычайно удобным, даже просто элементарным в освоении и написании на нем программ... Но самое главное это архитектура, т.к. каждая директива фактически заменяетя всего одной ( редко двумя командами ), что дает бешеную производительность. Правда учитывая, что 8 штук команд выполняются за 1 машинный цикл, а конвеер захватывает по 32 команды. Мне поначалу с трудом верилось, что подобного рода математический процессор, например, на 720Mhz может работать от 2х батареек около 18 часов...
Sabrian
30 - 24.04.2004 - 12:23
Чесно говоря, мне тоже. У 720Mhz процессора потребляемая мощность ват 10 должна быть.

К списку вопросов на форуме Программирование

>>