реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Универсальный ассемблер
Student2
сообщение Feb 14 2010, 06:40
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 4-08-09
Из: Болгария / София
Пользователь №: 51 737



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

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

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

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

Сообщение отредактировал Student2 - Feb 14 2010, 06:41
Go to the top of the page
 
+Quote Post
V_G
сообщение Feb 14 2010, 09:10
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



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

Ассемблер очень сильно привязан к архитектуре микропроцессора, потому универсального ассемблера быть не может (на мой взгляд, в теории языков программирования не силен).
Есть ассемблероподобные языки, в которых просто предпринята попытка уйти от мнемоник. По виду программы они занимают промежуточное положение между классическим ассемблером и Си. Сам работал на Smal2 (фактически 1:1 инструкции Intel'8080 с Си-подобным синтаксисом) и немного на ассемблере adsp21XX, тоже с минимизированным использованием мнемоник. Тем не менее и там есть глубоко специфические для конкретного процессора команды и конструкции.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Feb 14 2010, 09:24
Сообщение #3


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



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

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


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 14 2010, 09:30
Сообщение #4


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(V_G @ Feb 14 2010, 14:10) *
универсального ассемблера быть не может


Однако ж он естьsmile.gif
TASM - table-driven assembler


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 14 2010, 10:06
Сообщение #5


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



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

+пицот! Еще в незапамятные времена, когда деревья были большими, а форточки-3.11 ...
Go to the top of the page
 
+Quote Post
Student2
сообщение Feb 14 2010, 11:09
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 4-08-09
Из: Болгария / София
Пользователь №: 51 737



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

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

Конечно универсального ассемблера не может существовать, я был рад иметь что то довольно близкое к конечному продукту.
Go to the top of the page
 
+Quote Post
V_G
сообщение Feb 14 2010, 13:07
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



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

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

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

Сообщение отредактировал V_G - Feb 14 2010, 13:10
Go to the top of the page
 
+Quote Post
Student2
сообщение Feb 15 2010, 06:29
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 4-08-09
Из: Болгария / София
Пользователь №: 51 737



К сожалению TASM не подходит к мою 16 bit архитектуру команд - в таблице нужно указать все возможные команды (например ADD R0, R0; ADD R1, R0; ADD R2, R0.... ADD R15, R0.... ADD R15,R15 - 256 команды только для ADD). ИМНО лучше пользоваться SWITCH (где в коде каждая команда имеет программная секция).
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Apr 25 2010, 21:16
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Код
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


Это позволяло описывать обработку параметров и вставку их в битовые поля кода операции.
Но ещё раз - свой собственный ассемблер, с генерацией бинарника, при желании дня за три написать можно.
Мне-то проще, есть и линкер и заготовки кодогенератора... если не совмещаться с другшими системами разработки, можно под любой процессор.
Go to the top of the page
 
+Quote Post
r_dot
сообщение Apr 28 2010, 23:03
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 237
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 791



Цитата(Student2 @ Feb 14 2010, 10:40) *
... для нестандартного микроконтроллера (который еще не в продаже). ...


Что-то мне подсказывает, что без полноценного отладчика такой микроконтроллер никогда не доберётся до стадии продажи. Народ нынче избалованный, рынок микроконтроллеров насыщен...
С этой точки зрения, код ассемблера лучше писать самому, с нуля, так как всё равно придётся его дополнять отладчиком и Си-шными библиотеками.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 17:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01446 секунд с 7
ELECTRONIX ©2004-2016