Forth
http://fforum.winglion.ru/

Форт-ассемблер
http://fforum.winglion.ru/viewtopic.php?f=24&t=3118
Страница 1 из 3

Автор:  _KROL [ Ср мар 22, 2017 22:11 ]
Заголовок сообщения:  Форт-ассемблер

Здраствуйте уважаемые фортеры! Подскажете пожалуйста, как понять "внутренности" какого-нибудь форт-ассемблера?

Автор:  gudleifr [ Ср мар 22, 2017 22:17 ]
Заголовок сообщения:  Re: Форт-ассемблер

_KROL писал(а):
Здраствуйте уважаемые фортеры! Подскажете пожалуйста, как понять "внутренности" какого-нибудь форт-ассемблера?


Очевидно, для этого нужно зайти на FORTH-форум - http://gudleifr.forum2x2.ru/t29-topic

Автор:  KPG [ Чт мар 23, 2017 04:41 ]
Заголовок сообщения:  Re: Форт-ассемблер

_KROL писал(а):
Здраствуйте уважаемые фортеры! Подскажете пожалуйста, как понять "внутренности" какого-нибудь форт-ассемблера?

Статья: Как написать свой ассемблер viewtopic.php?f=34&t=1569

Автор:  Victor__v [ Чт мар 23, 2017 09:17 ]
Заголовок сообщения:  Re: Форт-ассемблер

Можно написать свой форт-ассемблер
Имея справочник по архитектуре под рукой, или какую-то толковую книжку по оп.кодам ассемблера, но это ещё надо поискать.
Справочник более оптимистичный вариант, пусть и на буржуйском

Автор:  oco [ Чт мар 23, 2017 13:22 ]
Заголовок сообщения:  Re: Форт-ассемблер

KPG писал(а):
Статья: Как написать свой ассемблер viewtopic.php?f=34&t=1569


Плюсую, отличная статья!

Автор:  _KROL [ Чт мар 23, 2017 22:30 ]
Заголовок сообщения:  Re: Форт-ассемблер

Спасибо!

Автор:  Hishnik [ Пт мар 24, 2017 14:56 ]
Заголовок сообщения:  Re: Форт-ассемблер

Ассемблеры в целом бывают разные. Для Форта тоже можно реализовать несколько основных подходов - либо "классический" вида mov eax, ebx, либо чисто постфиксный, максимально использующий встроенные возможности Форта по разбору текста. Зависит от общих целей. Постфикс хорош, если надо сделать "прямо сейчас", но опасен именно своими богатыми возможностями - кто-то другой может придумать и другой синтаксис.

Автор:  gudleifr [ Пт мар 24, 2017 15:12 ]
Заголовок сообщения:  Re: Форт-ассемблер

Hishnik писал(а):
Для Форта тоже можно реализовать несколько основных подходов...
Точнее, по уму, не нужно реализовывать ни один. Нужно, просто, записывать в удобной (краткой, понятной) форме те кодовые слова, которые встречаются в программе - т.е. нужен набор удобных макросов для часто встречающихся комбинаций.
Идея здесь простая - если вы хорошо знаете машинный язык, вы и в кодах напишите, а для незнающего машинный язык множить это незнание на соглашения красивого ассемблера - никакого резона. Окупается только для очень простых процессоров - уровня 80-го. Тем более, что строк, для которых критично время исполнения, в программе обычно бывает порядка десятка.

С точки зрения FORTH нужно знать всего три вещи:
1. Где лежит слово (точка входа) создания словарной статьи - ENTRY , (CREATE) или еще как.
2. Какие нужны начальные-конечные коды для кодового слова в используемом шитом коде.
3. Что есть такое слово "запятая" (для леняев - "C-запятая").

Автор:  diver [ Пт мар 24, 2017 15:37 ]
Заголовок сообщения:  Re: Форт-ассемблер

могу скинуть свой асм для avr32 ) в теории с комментариями)

Автор:  KPG [ Пт мар 24, 2017 22:21 ]
Заголовок сообщения:  Re: Форт-ассемблер

diver писал(а):
могу скинуть свой асм для avr32 ) в теории с комментариями)

По материалам данной статьи? viewtopic.php?f=34&t=396&start=0

Автор:  Hishnik [ Сб мар 25, 2017 01:52 ]
Заголовок сообщения:  Re: Форт-ассемблер

viewtopic.php?f=34&t=373 - в основном x86
viewtopic.php?f=39&t=2271 - для МК, но можно рассматривать как вариант общего подхода к ассемблерам

Автор:  diver [ Сб мар 25, 2017 09:17 ]
Заголовок сообщения:  Re: Форт-ассемблер

KPG писал(а):
diver писал(а):
могу скинуть свой асм для avr32 ) в теории с комментариями)

По материалам данной статьи? viewtopic.php?f=34&t=396&start=0


Он самый.

Автор:  gudleifr [ Сб мар 25, 2017 10:44 ]
Заголовок сообщения:  Re: Форт-ассемблер

Hishnik писал(а):
http://fforum.winglion.ru/viewtopic.php?f=34&t=373 - в основном x86
Хороший пример того, о чем я говорил - ненужности FORTH-ассемблера.
Рассмотрим, например команду ADD общего вида (32-разрядная адресация). Уже байт команды даст нам 4 опкода для разных вариатов (размера данных и направления операции), затем, следует байт адресации (256 вариантов опкодов). 4 * 256 = 1024. Отбросим 8 вариантов байта - специальную комбинацию, требующую дополнительного байта адресации и добавим еще 256 вариантов за новый байт:

4 * (248 + 8 * 256) = 9184 нуль-операндных команд только на простое сложение.

Конечно, коллега Хищник прав, они обычно нафиг не нужны. Будет использоваться только пара другая - для частого или оптимизированного использования. Но, ведь, это и есть отрицание самой идеи ассемблера - возможности получения полного доступа к железу. Так что, игра не стоит свеч. Например, в FOBOS я засунул разработанный по молодости ассемблер (только 16-разрядные операции выкинул). Кстати, ассемблер, хоть и почти FORTH-традиционный, но очень неудобный - пользоваться им могу я один и то, только когда перечитаю исходник. И что? 300 строк - около 10% всей программы. Причем, 10-20 строк до определения этого ассемблера уже пришлось написать честно в кодах. А в дальнейшем используются примерно те же коды, которые коллега ввел, как нуль-операндные. Ради пары другой исключений держать полный ассемблер?

P.S. Моя страничка, кто заметил, сейчас недоступна. Сбой хостинга. Возможно, последний и окончательный...

Автор:  chess [ Пн мар 27, 2017 22:47 ]
Заголовок сообщения:  Re: Форт-ассемблер

gudleifr писал(а):
Хороший пример того, о чем я говорил - ненужности FORTH-ассемблера.

Точно так можно сказать о ненужности чисел в Форте, но не сказали, а ввели преобразование
любой лексемы числа в соответствующий код.
В Форте без проблем можно использовать аналогичный подход к формированию опкодов ассемблера.

Автор:  gudleifr [ Пн мар 27, 2017 23:04 ]
Заголовок сообщения:  Re: Форт-ассемблер

chess писал(а):
Точно так можно сказать о ненужности чисел в Форте, но не сказали
Почему же, сказали.
Например, mOleg (да простит он мне эту ссылку на него) рассматривает их как обычные слова.
А я, наоборот, предпочитаю рассматривать как частный случай регулярных выражений.

chess писал(а):
В Форте без проблем можно использовать аналогичный подход к формированию опкодов ассемблера.
В чем Вы видите "аналогичность"?
Ненужность универсального ассемблера - это просто отказ от никому не нужной работы. Это как добавление asm-скобочек в некоторые кастрированные версии C-компиляторов.

Страница 1 из 3 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/