Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт окт 16, 2018 23:15

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 79 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 08, 2009 09:25 
Не в сети

Зарегистрирован: Вс июн 21, 2009 20:49
Сообщения: 111
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
WingLion писал(а):
На примере стека этот контроль вполне формализуется. Ловить переполнение/исчерпание надо далеко не всегда. А вот аппаратно поймать медленную утечку стека или памяти - это уже более интересно, как мне кажется.

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

Единственный проблем, имеет ли Форт средства, позволяющие жестко ограничить программу, чтобы она вообще не могла попасть в непротестированное состояние? - насколько я понял, такого нет..

Вот как пример, в функциональной парадигме вообще принципиально частям программы запрещено иметь какие-то сторонние эффекты - на любой вызов только один вариант ответа, в результате число состояний не становится бесконечно большим и ошибки ловятся за конечное время (Хаскелл вообще славится способностью вылавливать ошибки еще на этапе написания программы).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 08, 2009 09:43 
Не в сети
Аватара пользователя

Зарегистрирован: Вт сен 11, 2007 11:07
Сообщения: 187
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
simne писал(а):
Хаскелл вообще славится способностью вылавливать ошибки еще на этапе написания программы


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

это пример

p.s. да и с производительностью там такие-же проблемы (непредсказуемость/непрозрачность), прочесть можно (для начала) в той же теме


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт дек 04, 2009 00:02 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
WingLion писал(а):
Первая версия описания лежит здесь: http://winglion.ru/equinox/


Произведена очередная модификация описания.
Модификация коснулась системы команд, которая по сути не изменилась, но поменялись коды команд.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт дек 04, 2009 00:57 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Увеличение скорости исполнения обеспечивается аппаратной реализацией команды NEXT
Я хочу уточнить - NEXT в данном случае соответтствует (для Интел) jmp или точнее "jmp исполняемое параллельно" ?

Цитата:
Хищник тут вобщем верно говорил, что можно отлаживаться на машинке с жестким контролем, а уже отлаженный код запускать с минимальным контролем, даже сделать эмулятор с полным контролем а железо пусть будет попроще.
Мне казалось, что это входит в замысел эмуляторов для форта


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт дек 04, 2009 01:04 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
вопрос писал(а):
Я хочу уточнить - NEXT в данном случае соответтствует (для Интел) jmp или точнее "jmp исполняемое параллельно" ?

NEXT соответствует параллельному исполнению двух команд RET и тут же CALL без чтения кода команды из адреса, куда вернулись.
Этот механизм пояснен здесь: http://winglion.ru/equinox/#3

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт дек 04, 2009 04:26 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
Внимательно вычитываю описание E16 ;) Эти места мне не очень понравились... :(
Цитата:
и исполняются последовательно от младшей тетрады бит к старшей
Добавить точку в конце предложения
Цитата:
для 16-битного варианта процессора, до 8 операндов для 32-хбитного и до 16 операндов для 64битного.
3 разных описания х-битного ;)
Цитата:
таким образом в младших битах регистра сдвига каждый такт оказывается какая-либо команда
м. "на каждом такте"? Но спорить сильно не буду... ;) просто чтение запнулось и захотелось как-то попроще... ;)
Цитата:
команд и, таким образом обеспечивает непрерывное поступление команд
или убрать запятую, или поставить еще, выделив "таким образом"
Цитата:
Префиксные команды состоят из двух четверок
Команды с префиксами - "префиксные" м. иметь и др. значения :( ; четверок бит
Цитата:
Исполнение префиксных команд
команд с префиксами - "префиксные" м. иметь и др. значения :(
Цитата:
исполняется команда следующая за префиксом
команда, следующая
Цитата:
командой CALL. вслед за которой
точку на запятую
Цитата:
Каждая программа, исполняемое адресным интерпретатором
исполняемая (заметил, а потом стал искать сначала и получилось, стал вычитывать... ;) )

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт дек 04, 2009 05:37 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
Извиняюсь за некоторый сумбур. Текст письма редактировался несколько раз параллельно с разглядыванием рисунка... ;)
К чему стал смотреть - появилась нужда в витруальном проце. А тут Форум напомнил про E16... ;)

Теперь вопросы.
Переходить ведь можно только на границы CELL (группы из нескольких команд в соответствии с разрядностью процессора, для E16 - размер CELL 16 бит)?

Цитата:
Объем кода уменьшается за счет отсутствия кодов команды CALL перед каждым адресом в последовательности вызовов.
Так в одной CELL может ли быть 4 CALL подряд? Куда тогда будет RET?
Пока похоже только на границу CELL? Значит, в одной CELL может быть только последняя(в смысле исполнения команд из CELL) CALL? И если она в начале, остальной код из CELL выполняется или нет? Скорее нет, но если выполняется, то когда?

На картинке также есть NEXT-RET, что это?

И, после некоторых раздумий, рисунок показался обычным адресным интерпретатором прямого ШК, как из Ноздрунова... ;) И приведенная цитата как раз про него... ;) Только тогда текст вокруг не совсем понятен... :roll: Точно переработать не надо? ;)

Да, предложенная техника использования NEXT вызывает вопросы. Использование NEXT предполагает знание в подпрограмме того, что за ее вызовом обязательно следует адрес следующей подпрограммы, а это серьезное ограничение использования подпрограмм!
Ведь при обычном программировании за адресом продпрограммы может быть код, готовящий параметры для вызова следующей подпрограммы!

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт дек 04, 2009 06:01 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
И про NOP
Можно ли сделать чтение следующего адреса не через фиктивную команду, а от счетчика нибблов? Мне почему-то кажется что так будет проще, но если есть серьезные возражения, объясните, пожалуйста!

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт дек 04, 2009 21:55 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
in4, спасибо за вычитку!

in4 писал(а):
для 16-битного варианта процессора, до 8 операндов для 32-хбитного и до 16 операндов для 64битного.


Вот тут не понял, в чем вопрос. В описании изначально 3 варианта процессора 16,32 и 64-битные.

in4 писал(а):
Переходить ведь можно только на границы CELL (группы из нескольких команд в соответствии с разрядностью процессора, для E16 - размер CELL 16 бит)?

да. Промежуточные адреса для процессора формально и не существуют.

in4 писал(а):
Так в одной CELL может ли быть 4 CALL подряд? Куда тогда будет RET?

4 CALL в одной CELL не имеют смысла, так как достаточно одного для вызова адресного интерпретатора.
Если же надо исполнить несколько подпрограмм (заканчивающихся на RET) подряд, тогда каждый CALL займет дополнительный CELL


in4 писал(а):
На картинке также есть NEXT-RET, что это?


адрес перехода на код с двумя командами: RDROP и NEXT - на рисунке это видно.

in4 писал(а):
И, после некоторых раздумий, рисунок показался обычным адресным интерпретатором прямого ШК, как из Ноздрунова...


фактически так и есть. Прямой шитый код с реализацией адресного интерпретатора не в программе, а в железе.

in4 писал(а):
Только тогда текст вокруг не совсем понятен..

Надо бы понять, что именно непонятно...



in4 писал(а):
Использование NEXT предполагает знание в подпрограмме того, что за ее вызовом обязательно следует адрес следующей подпрограммы, а это серьезное ограничение использования подпрограмм!
Ведь при обычном программировании за адресом продпрограммы может быть код, готовящий параметры для вызова следующей подпрограммы!


Ограничений особо и не видно. Разве что небольшое неудобство, что каждую подпрограмму надо в форт-слово оформлять, чтобы использовать ее вызов через адресный интерпретатор.


in4 писал(а):
Ведь при обычном программировании за адресом продпрограммы может быть код, готовящий параметры для вызова следующей подпрограммы!


туда возврат происходит по RET. Если именно это и надо в конкретном месте, надо вызывать подпрограмму, заканчивающуюся на RET.
Если же в конкретном месте надо ее использовать в потоке адресной интерпретации, то вызывать надо не саму подпрограмму, а ее клон (с оберткой из CALL и NEXT)

п.с. Описание поправил как сумел.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт дек 04, 2009 21:57 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
in4 писал(а):
Можно ли сделать чтение следующего адреса не через фиктивную команду, а от счетчика нибблов? Мне почему-то кажется что так будет проще, но если есть серьезные возражения, объясните, пожалуйста!


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

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 05, 2009 02:37 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
WingLion писал(а):
in4 писал(а):
для 16-битного варианта процессора, до 8 операндов для 32-хбитного и до 16 операндов для 64битного.

Вот тут не понял, в чем вопрос. В описании изначально 3 варианта процессора 16,32 и 64-битные.

Цитата:
для 16-битного варианта процессора, до 8 операндов для 32-хбитного и до 16 операндов для 6итного.

WingLion писал(а):
4 CALL в одной CELL не имеют смысла, так как достаточно одного для вызова адресного интерпретатора.
Согласен. А еще для эффективности остаток CELL луше заполнять NOP-ами
WingLion писал(а):
Если же надо исполнить несколько подпрограмм (заканчивающихся на RET) подряд, тогда каждый CALL займет дополнительный CELL
Да. Но если CALL сделать последней командой, то предыдущие команды CELL-а могут еще много чего сделать. Например, загрузить 3 литерала! ;)
А если подряд несколько CALL-ов, то да, один CALL на CELL :(

WingLion писал(а):
Разве что небольшое неудобство, что каждую подпрограмму надо в форт-слово оформлять, чтобы использовать ее вызов через адресный интерпретатор.
Будет ли выгода от аппаратной адресной интерпретации? Были ли сделаны оценки эффективности?

Вопрос по рисунку http://winglion.ru/equinox/forth-code.png
Там изображен проц с 12-битовым CELL .
Где младшие разряды и в какой последовательности будет идти интерпретация? В примере для 16-разрядного CELL (из текста) старшие разряды были слева, а младшие справа.
Цитата:
Команды загружаются в процессор группами, упакованными в машинное слово, и исполняются последовательно от младшей тетрады бит к старшей.


Может, ввести термин CELL для обозначения адресуемой единицы памяти (и одновременно группы команд в ней)? Вроде через это будет проще изложить...

Цитата:
слово MyWORD оформленное для исполнения через адрсный
адресный

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 05, 2009 08:23 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
in4 писал(а):
Согласен. А еще для эффективности остаток CELL луше заполнять NOP-ами

собственно, особого смысла в этом нет, потому что после первого же CALL в процессоре NOP (загрузка группы команд из адреса, куда вызов произошел) выполняется автоматом.
А я подумываю о том, чтобы использовать оставшееся пространство для коротких вызовов, например, сделать так, что если за командой CALL следует не нулевой ниббл, то исполняется одна из 15 подпрограмм с фиксированным адресом. Подобно INT #nn в Z80.

in4 писал(а):
Да. Но если CALL сделать последней командой, то предыдущие команды CELL-а могут еще много чего сделать. Например, загрузить 3 литерала! Wink
А если подряд несколько CALL-ов, то да, один CALL на CELL

Да, так и есть. Кстати, слово, вызванное через адресный интерпретатор, вполне может достать адрес со стека возвратов, взять несколько слов, расположенных после своего адреса в потоке интерпретации и вернуть на стек возвратов модифицированный адрес, т.е. параметры для слова могут следовать за его адресом непосредственно.
Хм... вот, прямо тут сразу и идейка появилась для новой команды! ;)) R+@ которая выполняет R> DUP 1+ >R @ для вытаскивания такого операнда (за 2 такта).
Думаю, такое слово будет полезно. В процессоре оно будет исполняться очень быстро, и в железе оно не много места потребует, потому что R> DUP 1+>R фактически уже делается для NEXT.

in4 писал(а):
Будет ли выгода от аппаратной адресной интерпретации? Были ли сделаны оценки эффективности?


В форте каждое высокоуровневое слово требует исполнения NEXT, если и само NEXT будет высокоуровневым, то задержка окажется существенной.

: NEXT R> DUP 1+ >R EXECUTE ; - грубо - 5 тактов, а в железе NEXT исполняется за 2 такта,
Если в каждом высокоуровневом слове в среднем 5-7 слов, то получается 15-25 тактов выигрыша на каждое слово. Мелочь, конечно, но душу греет. ;)
Кроме того, железный NEXT позволяет делать очень коротенькие слова вплоть до 1 CELL на слово, т.е. в одном слове три команды + NEXT, а в потоке адресной интерпретации только ссылка на адрес, где это слово с командами лежит. Т.е. хороший выигрыш не только по тактам, но и по занимаемому объему, что довольно важно для ограниченной внутренней памяти ПЛИС.



in4 писал(а):
Вопрос по рисунку http://winglion.ru/equinox/forth-code.png
Там изображен проц с 12-битовым CELL .

этот рисунок сильно упрощен. Надо подразумевать, что в CELL может быть от 3 до 16 четверок в CELL

in4 писал(а):
Где младшие разряды и в какой последовательности будет идти интерпретация? В примере для 16-разрядного CELL (из текста) старшие разряды были слева, а младшие справа.


'младшие' и 'старшие' ('левые' и 'правые') - это формальные названия. Если микросхему развернуть на 180 градусов (хотел написать Цельсия ;) ) порядок изменится, но суть памяти - нет.

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

При исполнении команд, сначала исполняется самая правая (младшая) четверка бит, сдвиг в регистре команды происходит на 4 бита 'вправо'.

Пример в регистр команд загрузилось слово 573F -> исполняется последовательность команд F -> 3 -> 7 -> 5 пример безотносительно к тому, что делается в реальном процессоре.

in4 писал(а):
Может, ввести термин CELL для обозначения адресуемой единицы памяти (и одновременно группы команд в ней)?


Ну :shuffle; странновато звучит предложение ввести термин, который уже давно как бы стандартен ;)



in4 писал(а):
адресный


Thx!

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 05, 2009 11:21 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
WingLion писал(а):
А я подумываю о том, чтобы использовать оставшееся пространство для коротких вызовов, например, сделать так, что если за командой CALL следует не нулевой ниббл, то исполняется одна из 15 подпрограмм с фиксированным адресом. Подобно INT #nn в Z80.
А можно даже больше таких команд, используя как адрес все оставшиеся биты CELL-а! ;)

WingLion писал(а):
Хм... вот, прямо тут сразу и идейка появилась для новой команды! ) R+@ которая выполняет R> DUP 1+ >R @ для вытаскивания такого операнда (за 2 такта).
Думаю, такое слово будет полезно. В процессоре оно будет исполняться очень быстро, и в железе оно не много места потребует, потому что R> DUP 1+>R фактически уже делается для NEXT.
Хорошо бы... ;) Но, может, и другие операции со стеком возврата добавить - для циклов, для косвеной адресации через верхушку RS... А еще один-два индексных регистра с автоинкрементом, воможность байтовой адресации, литералы к команде... ;)

WingLion писал(а):
Кроме того, железный NEXT позволяет делать очень коротенькие слова вплоть до 1 CELL на слово, т.е. в одном слове три команды + NEXT, а в потоке адресной интерпретации только ссылка на адрес, где это слово с командами лежит.
После этого^ в сочетании с др. объяснениями - проникся... ;)

WingLion писал(а):
этот рисунок сильно упрощен. Надо подразумевать, что в CELL может быть от 3 до 16 четверок в CELL
А не от 2х четверок? ;) Или так нельзя, тогда почему? (Даже при CELL=8бит данные могут быть и 2х-байтные, 2 CELL на данное. Еще можно сделать 2 вида литерала, один из которых берет байт но с расширением знака - экономия ;) )

WingLion писал(а):
При исполнении команд, сначала исполняется самая правая (младшая) четверка бит, сдвиг в регистре команды происходит на 4 бита 'вправо'.
Просто на рисунке сделано по-другому и может вызвать запинки и ненужные вопросы. Хотя это м.б. и тест на понимание, типа входного контроля читающего, как посмотреть... ;)

WingLion писал(а):
in4 писал(а):
Может, ввести термин CELL для обозначения адресуемой единицы памяти (и одновременно группы команд в ней)?

Ну странновато звучит предложение ввести термин, который уже давно как бы стандартен
Имелось ввиду использовать этот термин в описании проца. ;)
(Сейчас не используется и ячейки называются длинными фразами "группа команд" (=CELL), "группами, упакованными в машинное слово"(=CELL-ами), "среди загруженных команд"(=в CELL) и т.п.)

Кстати, не хочешь бОльше условий добавить?
Проверку на отрицательное, по переносу (если флаг переноса делать не хочешь, тогда почему?) Как без переноса делать D+ ?

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 05, 2009 12:07 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
in4 писал(а):
А можно даже больше таких команд, используя как адрес все оставшиеся биты CELL-а!

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


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

Сильно усложнять процессор тоже не хочется. Для байтового доступа пока сделана только команда BSWAP - перестановка байтов в слове, понадобится больше - буду думать.
С индексными регистрами тоже могут возникнуть вопросы - а где коды команд для них брать?

in4 писал(а):
А не от 2х четверок? Wink Или так нельзя, тогда почему? (Даже при CELL=8бит данные могут быть и 2х-байтные, 2 CELL на данное. Еще можно сделать 2 вида литерала, один из которых берет байт но с расширением знака - экономия Wink )


Восьмибитный вариант процессора по какой-то причине у меня не заработал сразу в общей схеме (через установку параметра в исходнике - WIDTH=8 ). И я еще не разбирался почему.
Но, думаю такой вариант процессора имеет право на существование. Для каких-нибудь мелких контроллеров. И по объему, он наверняка уместится в очень маленькую ПЛИС-ку.


in4 писал(а):
Просто на рисунке сделано по-другому и может вызвать запинки и ненужные вопросы. Хотя это м.б. и тест на понимание, типа входного контроля читающего, как посмотреть...


Рисунок надо бы просто переделать. А то он делался раньше, еще для другого процессора (о нем можно уже забыть).


in4 писал(а):
Имелось ввиду использовать этот термин в описании проца. Wink
(Сейчас не используется и ячейки называются длинными фразами "группа команд" (=CELL), "группами, упакованными в машинное слово"(=CELL-ами), "среди загруженных команд"(=в CELL) и т.п.)


Описание буду править полностью, когда доделаю целевой компилятор и на нем (процессоре) заработает полноценный форт.
Тогда можно будет внести исправления, что появятся в процессе отладки. Да и описание самой встроенной системы с форт-процессором добавить.


in4 писал(а):
Кстати, не хочешь бОльше условий добавить?
Проверку на отрицательное, по переносу (если флаг переноса делать не хочешь, тогда почему?) Как без переноса делать D+ ?


Думаю о том, чтобы сделать команду IF префиксной. Тогда можно сделать до 16 условий. Или 8 условий плюс признак короткого ветвления с переходом по 16-битному смещению.
На префиксность еще и LIT просится для организации коротких и длинных литералов.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 05, 2009 13:10 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
IF префиксной. Тогда можно сделать до 16 условий. Или 8 условий плюс признак короткого ветвления с переходом по 16-битному смещению.
а какие 16 условий :?:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 79 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB