Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Универсальный ассемблер
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
Student2
Здравствуйте,

У меня такая задача - написать на C++. C# или Delphi макроассемблер для нестандартного микроконтроллера (который еще не в продаже). Контроллер имеет ~90 комманд и 16 бит архитектуры.

Конечно самый легкий путь - взять кокой то универсальный ассемблер и написать только таблицы инструкции.

Буду благодарен для идеи.
V_G
Цитата(Student2 @ Feb 14 2010, 16:40) *
Конечно самый легкий путь - взять кокой то универсальный ассемблер и написать только таблицы инструкции.

Ассемблер очень сильно привязан к архитектуре микропроцессора, потому универсального ассемблера быть не может (на мой взгляд, в теории языков программирования не силен).
Есть ассемблероподобные языки, в которых просто предпринята попытка уйти от мнемоник. По виду программы они занимают промежуточное положение между классическим ассемблером и Си. Сам работал на Smal2 (фактически 1:1 инструкции Intel'8080 с Си-подобным синтаксисом) и немного на ассемблере adsp21XX, тоже с минимизированным использованием мнемоник. Тем не менее и там есть глубоко специфические для конкретного процессора команды и конструкции.
ReAl
Цитата(Student2 @ Feb 14 2010, 08:40) *
Конечно самый легкий путь - взять кокой то универсальный ассемблер и написать только таблицы инструкции.
Буду благодарен для идеи.
Портировать binutils - получите сразу макроассемблер и линкер, а также библиотекарь, дизассемблер, ... и, что тоже весомо, документацию на это всё :-)
А на следующем шаге спортируете С-компилятор из gcc. Тем более, что 16-битник с только ассемблером - это разве что для узкого внутреннего употребления.

p.s. У SM на такое портирование (только binutils, за ненадобностью C) ушло две недели, насколько я помню. Вводите поправочные коэффициенты ;-) и рассчитывайте время
AHTOXA
Цитата(V_G @ Feb 14 2010, 14:10) *
универсального ассемблера быть не может


Однако ж он естьsmile.gif
TASM - table-driven assembler
_Pasha
Цитата(AHTOXA @ Feb 14 2010, 13:30) *
Однако ж он естьsmile.gif

+пицот! Еще в незапамятные времена, когда деревья были большими, а форточки-3.11 ...
Student2
Спасибо всем,

Я тоже нашел что то - http://www.drdobbs.com/embedded/222600279

Конечно универсального ассемблера не может существовать, я был рад иметь что то довольно близкое к конечному продукту.
V_G
Цитата(AHTOXA @ Feb 14 2010, 19:30) *
Однако ж он естьsmile.gif
TASM - table-driven assembler

На тасме программировал лет 10 под 51 машину. Но все его таблицы были в то время под интеловскую архитектуру. Потом сразу перешел на AVR и PIC. Не думаю, что тасм в том виде, как я его знал, смог бы поддержать эти архитектуры.

Оп - посмотрел ссылку. Поддерживаются интеловские и производные от нее архитектуры, ничего не изменилось с домиллениумных времен
Student2
К сожалению TASM не подходит к мою 16 bit архитектуру команд - в таблице нужно указать все возможные команды (например ADD R0, R0; ADD R1, R0; ADD R2, R0.... ADD R15, R0.... ADD R15,R15 - 256 команды только для ADD). ИМНО лучше пользоваться SWITCH (где в коде каждая команда имеет программная секция).
Genadi Zawidowski
Код
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
Цитата(Student2 @ Feb 14 2010, 10:40) *
... для нестандартного микроконтроллера (который еще не в продаже). ...


Что-то мне подсказывает, что без полноценного отладчика такой микроконтроллер никогда не доберётся до стадии продажи. Народ нынче избалованный, рынок микроконтроллеров насыщен...
С этой точки зрения, код ассемблера лучше писать самому, с нуля, так как всё равно придётся его дополнять отладчиком и Си-шными библиотеками.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.