Forth http://fforum.winglion.ru/ |
|
EQUINOX: Целевой компилятор http://fforum.winglion.ru/viewtopic.php?f=56&t=2836 |
Страница 1 из 1 |
Автор: | WingLion [ Ср апр 11, 2012 19:19 ] |
Заголовок сообщения: | EQUINOX: Целевой компилятор |
файл первый - target.f формирует буфер образа целевой памяти и слова для работы с ним: // целевой компилятор для процессора EQUINOX-16 Файл второй equinox.f: ." - equinox2.f загружен" CR И Третий файл с собственно системой команд процессора equinox_commands.f: ." - equinox_commands.f загружен" CR |
Автор: | WingLion [ Ср апр 11, 2012 19:32 ] |
Заголовок сообщения: | Re: EQUINOX: Целевой компилятор |
Что еще надо сделать... 1. Организация меток для ссылок как вперед, так и назад. Назад - не сложно. А вперед надо еще думать, не забыв, что ссылки вперед могут использоваться несколько раз до того, как определены. Выход1: писать все метки в отдельный файл, который подгружать на втором проходе. 2. Организация компиляции строк. Наиболее подходящими считаю строки, заканчивающиеся нулем. СДЕЛАНО 3. Организация переменных и констант в целевой памяти. Константа - по сути компиляция литерала. Переменная - компиляция адреса. И для VALUE переменной - компиляция адреса с немедленным разыменованием, что в четырехбитной системе позволяет уложить такую команду в одно слово. 4. -- ой, много еще чего надо -- |
Автор: | Hishnik [ Ср апр 11, 2012 19:43 ] |
Заголовок сообщения: | Re: EQUINOX: Целевой компилятор |
Вот тут есть про метки. http://fforum.winglion.ru/viewtopic.php?f=34&t=373 |
Автор: | WingLion [ Чт апр 12, 2012 06:26 ] |
Заголовок сообщения: | Re: EQUINOX: Целевой компилятор |
Хищник писал(а): Так, идею понял, буду пытаться сегодня реализовывать... Предвидятся некоторые сложности, надеюсь, они не помешают... |
Автор: | Hishnik [ Чт апр 12, 2012 14:53 ] |
Заголовок сообщения: | Re: EQUINOX: Целевой компилятор |
С литералами может помочь DISPATCH-NUMBER (в сочетании с переменной CAN-DISPATCH). |
Автор: | WingLion from work [ Пт апр 13, 2012 14:41 ] |
Заголовок сообщения: | Re: EQUINOX: Целевой компилятор |
A вот и получившийся "крокодил" с метками: \ Сначала объявляются все метки... Вернее, они объявляются в процессе их появления в исходнике. В исходнике они используются независимо от того, где определены, в начале или в конце, перед реальным использованием или после. Когда исходник завершен, вызывается слово, разрешающее сразу все метки. Получается компиляция один проход, во время которого "собирается" таблица ссылок, по которой затем в скомпилированный код вписываются нужные адреса... Установкой двух констант регулируется количество используемых меток и ссылок на них. Формально, можно вписать в эти константы большие числа, но тогда... э... ну, почти ничего не произойдет, пока компилятор работает на компьютере "с бесконечной память", если компилятор потом на самой встроенной системе с EQUINOX запускать, то регулировка количества используемых меток очень даже нужна. п.с. ...код отлажен лишь частично... |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |