luben111 0 14 февраля, 2010 Опубликовано 14 февраля, 2010 (изменено) · Жалоба Здравствуйте, У меня такая задача - написать на C++. C# или Delphi макроассемблер для нестандартного микроконтроллера (который еще не в продаже). Контроллер имеет ~90 комманд и 16 бит архитектуры. Конечно самый легкий путь - взять кокой то универсальный ассемблер и написать только таблицы инструкции. Буду благодарен для идеи. Изменено 14 февраля, 2010 пользователем Student2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_G 11 14 февраля, 2010 Опубликовано 14 февраля, 2010 · Жалоба Конечно самый легкий путь - взять кокой то универсальный ассемблер и написать только таблицы инструкции. Ассемблер очень сильно привязан к архитектуре микропроцессора, потому универсального ассемблера быть не может (на мой взгляд, в теории языков программирования не силен). Есть ассемблероподобные языки, в которых просто предпринята попытка уйти от мнемоник. По виду программы они занимают промежуточное положение между классическим ассемблером и Си. Сам работал на Smal2 (фактически 1:1 инструкции Intel'8080 с Си-подобным синтаксисом) и немного на ассемблере adsp21XX, тоже с минимизированным использованием мнемоник. Тем не менее и там есть глубоко специфические для конкретного процессора команды и конструкции. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 14 февраля, 2010 Опубликовано 14 февраля, 2010 · Жалоба Конечно самый легкий путь - взять кокой то универсальный ассемблер и написать только таблицы инструкции. Буду благодарен для идеи. Портировать binutils - получите сразу макроассемблер и линкер, а также библиотекарь, дизассемблер, ... и, что тоже весомо, документацию на это всё :-) А на следующем шаге спортируете С-компилятор из gcc. Тем более, что 16-битник с только ассемблером - это разве что для узкого внутреннего употребления. p.s. У SM на такое портирование (только binutils, за ненадобностью C) ушло две недели, насколько я помню. Вводите поправочные коэффициенты ;-) и рассчитывайте время Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 14 февраля, 2010 Опубликовано 14 февраля, 2010 · Жалоба универсального ассемблера быть не может Однако ж он есть:) TASM - table-driven assembler Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 14 февраля, 2010 Опубликовано 14 февраля, 2010 · Жалоба Однако ж он есть:) +пицот! Еще в незапамятные времена, когда деревья были большими, а форточки-3.11 ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
luben111 0 14 февраля, 2010 Опубликовано 14 февраля, 2010 · Жалоба Спасибо всем, Я тоже нашел что то - http://www.drdobbs.com/embedded/222600279 Конечно универсального ассемблера не может существовать, я был рад иметь что то довольно близкое к конечному продукту. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_G 11 14 февраля, 2010 Опубликовано 14 февраля, 2010 (изменено) · Жалоба Однако ж он есть:) TASM - table-driven assembler На тасме программировал лет 10 под 51 машину. Но все его таблицы были в то время под интеловскую архитектуру. Потом сразу перешел на AVR и PIC. Не думаю, что тасм в том виде, как я его знал, смог бы поддержать эти архитектуры. Оп - посмотрел ссылку. Поддерживаются интеловские и производные от нее архитектуры, ничего не изменилось с домиллениумных времен Изменено 14 февраля, 2010 пользователем V_G Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
luben111 0 15 февраля, 2010 Опубликовано 15 февраля, 2010 · Жалоба К сожалению TASM не подходит к мою 16 bit архитектуру команд - в таблице нужно указать все возможные команды (например ADD R0, R0; ADD R1, R0; ADD R2, R0.... ADD R15, R0.... ADD R15,R15 - 256 команды только для ADD). ИМНО лучше пользоваться SWITCH (где в коде каждая команда имеет программная секция). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 25 апреля, 2010 Опубликовано 25 апреля, 2010 · Жалоба C:\user_old\ucc\sample>C32.EXE Cross-32 Meta-Assembler PC/MS-DOS Version 2.0S Copyright (C) 1992 Universal Cross-Assemblers Fatal Error -- No source file specified Это позволяло описывать обработку параметров и вставку их в битовые поля кода операции. Но ещё раз - свой собственный ассемблер, с генерацией бинарника, при желании дня за три написать можно. Мне-то проще, есть и линкер и заготовки кодогенератора... если не совмещаться с другшими системами разработки, можно под любой процессор. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
r_dot 0 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба ... для нестандартного микроконтроллера (который еще не в продаже). ... Что-то мне подсказывает, что без полноценного отладчика такой микроконтроллер никогда не доберётся до стадии продажи. Народ нынче избалованный, рынок микроконтроллеров насыщен... С этой точки зрения, код ассемблера лучше писать самому, с нуля, так как всё равно придётся его дополнять отладчиком и Си-шными библиотеками. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться