Перейти к содержанию
    

Универсальный ассемблер

Здравствуйте,

 

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

 

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

 

Буду благодарен для идеи.

Изменено пользователем Student2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Ассемблер очень сильно привязан к архитектуре микропроцессора, потому универсального ассемблера быть не может (на мой взгляд, в теории языков программирования не силен).

Есть ассемблероподобные языки, в которых просто предпринята попытка уйти от мнемоник. По виду программы они занимают промежуточное положение между классическим ассемблером и Си. Сам работал на Smal2 (фактически 1:1 инструкции Intel'8080 с Си-подобным синтаксисом) и немного на ассемблере adsp21XX, тоже с минимизированным использованием мнемоник. Тем не менее и там есть глубоко специфические для конкретного процессора команды и конструкции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Буду благодарен для идеи.

Портировать binutils - получите сразу макроассемблер и линкер, а также библиотекарь, дизассемблер, ... и, что тоже весомо, документацию на это всё :-)

А на следующем шаге спортируете С-компилятор из gcc. Тем более, что 16-битник с только ассемблером - это разве что для узкого внутреннего употребления.

 

p.s. У SM на такое портирование (только binutils, за ненадобностью C) ушло две недели, насколько я помню. Вводите поправочные коэффициенты ;-) и рассчитывайте время

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

универсального ассемблера быть не может

 

Однако ж он есть:)

TASM - table-driven assembler

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Однако ж он есть:)

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо всем,

 

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

 

Конечно универсального ассемблера не может существовать, я был рад иметь что то довольно близкое к конечному продукту.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Однако ж он есть:)

TASM - table-driven assembler

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

 

Оп - посмотрел ссылку. Поддерживаются интеловские и производные от нее архитектуры, ничего не изменилось с домиллениумных времен

Изменено пользователем V_G

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К сожалению TASM не подходит к мою 16 bit архитектуру команд - в таблице нужно указать все возможные команды (например ADD R0, R0; ADD R1, R0; ADD R2, R0.... ADD R15, R0.... ADD R15,R15 - 256 команды только для ADD). ИМНО лучше пользоваться SWITCH (где в коде каждая команда имеет программная секция).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Это позволяло описывать обработку параметров и вставку их в битовые поля кода операции.

Но ещё раз - свой собственный ассемблер, с генерацией бинарника, при желании дня за три написать можно.

Мне-то проще, есть и линкер и заготовки кодогенератора... если не совмещаться с другшими системами разработки, можно под любой процессор.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... для нестандартного микроконтроллера (который еще не в продаже). ...

 

Что-то мне подсказывает, что без полноценного отладчика такой микроконтроллер никогда не доберётся до стадии продажи. Народ нынче избалованный, рынок микроконтроллеров насыщен...

С этой точки зрения, код ассемблера лучше писать самому, с нуля, так как всё равно придётся его дополнять отладчиком и Си-шными библиотеками.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...