Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Ср дек 12, 2018 02:56

...
Google Search
Forth-FAQ Spy Grafic

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




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

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
mOleg писал(а):
(стек заглатывает данные по 4 байта а не побайтно)
да и область стека огнаничена системой...


ремарка: 4-е байта размерность ячейки стека
а хранить в ней можно и байты ( мы же знаем, что на стек упало )

mOleg писал(а):
стека данных в EBP стека возвратов в ESP ...

ремарка: при написании примитивов на встроенном ассемблере для SPF4, но возможно
к ним есть доступ из Форт кода.

MrYuran писал(а):
Ух, ё-моё... и это только отправка пакета...
А ведь ещё приём .


Решения могут быть разные и не обязательно вычурные:)

mOleg писал(а):
есть еще такой штамп:
( addr # --> ) OVER + SWAP DO I C@ Outport LOOP
.


устоявшееся слово
: BOUNDS ( addr n -- addr_end addr_begin ) OVER + SWAP ;


Последний раз редактировалось Kopa Чт июл 23, 2009 16:27, всего редактировалось 1 раз.

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

Зарегистрирован: Вс мар 04, 2007 08:02
Сообщения: 224
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
Kopa писал(а):
устоявшееся слово
: BOUNDS ( addr n -- addr_end addr_begin ) OVER + SWAP ;


Хм, буду знать. Спасибо. А то всегда так и писал: OVER + SWAP ...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 23, 2009 16:29 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
chu писал(а):
Kopa писал(а):
устоявшееся слово
: BOUNDS ( addr n -- addr_end addr_begin ) OVER + SWAP ;


Хм, буду знать. Спасибо. А то всегда так и писал: OVER + SWAP ...


А в devel Spf4 почти это повсеместно:)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 23, 2009 16:44 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
MrYuran писал(а):
Локальный стек - нету такого понятия?


Можно на стеке данных ввести стековый фрейм в Кварке

Для Spf4, возможно тоже накодить подобный механизм, если ещё не делали

P.S. Можно по форуму поискать обсуждения со словом DEPTH


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

Зарегистрирован: Вс июн 21, 2009 19:11
Сообщения: 81
Откуда: Н.Новгород
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Kopa писал(а):
Можно на стеке данных ввести стековый фрейм в Кварке

Код:
\ выделить на стеке данных место под массив
\ вернуть неинициализированный массив и его длину на вершине стека
: FRAME ( # --> [frame] # ) >R SP@ R@ CELLS - SP! R> ;

Оно?
~moleg\lib\util\stackadd.f
Только каким местом его к моей беде приложить, не понимаю
То есть он просто спускает SP на длину массива и всё.


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4956
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
MrYuran писал(а):
Оно?

~moleg\lib\util\stackadd.f

нет, не оно, а ~moleg\lib\util\stack.f ( неименованные стеки )

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4956
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
MrYuran писал(а):
Только каким местом его к моей беде приложить, не понимаю
То есть он просто спускает SP на длину массива и всё.

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

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


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

Зарегистрирован: Вс июн 21, 2009 19:11
Сообщения: 81
Откуда: Н.Новгород
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Хорошо.
Тогда поясните, пожалуйста, как будет работать такая структура (из примеров)
Код:
-5 struct sample
            0 fld off_a
            2 fld off_b
            4 fld off_c
            1 fld off_d
       /struct

Что такое -5, и как мне узнать размер структуры по имени, чтобы кинуть её в поток
off_a ... off_в - это будут адреса полей или смещения?


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

Зарегистрирован: Вс мар 04, 2007 08:02
Сообщения: 224
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
можно посмотреть в исходнике: \devel\~moleg\lib\struct\fld.f


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

Зарегистрирован: Вс мар 04, 2007 08:02
Сообщения: 224
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
chu писал(а):
можно посмотреть в исходнике


сорри, посмотрел сам, пример как раз оттуда...


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

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
Топик обсуждения структур в SPF
Есть и приведённые реализации

P.S. На Форуме можно многие интересующие вопросы найти в обсуждениях.
Ещё у SPF4 неплохая документация:)


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4956
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
MrYuran писал(а):
Хорошо.
Тогда поясните, пожалуйста, как будет работать такая структура (из примеров)
Код:
-5 struct sample
            0 fld off_a
            2 fld off_b
            4 fld off_c
            1 fld off_d
       /struct
Что такое -5, и как мне узнать размер структуры по имени, чтобы кинуть её в поток
off_a ... off_в - это будут адреса полей или смещения?


в словаре будет автоматически создано слово /sample - его вызов будет оставлять размер структуры.

слова off_a и т.д. будут добавлять к адресу на входе смещение к нужному полю. То есть в данном выше примере:

100 off_a .
вернет значение 95
100 off_b .
вернет значение 97
и так далее

впрочем это в исходнике наблюдается:
/sample 7 <> THROW \ это размер получившейся структуры
3 off_a -2 <> THROW \ а дальше идет проверка правильность работы имен смещений
5 off_b 0 <> THROW
0 off_c -3 <> THROW
2 off_d 3 <> THROW

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4956
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
Kopa писал(а):
Ещё у SPF4 неплохая документация

не правильно слова расставлены:

у СПФ ЕЩЕ не плохая документация..
(в смысле большинство систем имеет еще более ужастную доку)
8(

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


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

Зарегистрирован: Вс июн 21, 2009 19:11
Сообщения: 81
Откуда: Н.Новгород
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Код:
\ ЏҐаў®­ з «м­ п Ё­ЁжЁ «Ё§ жЁп Ї®ав 
: ComInit ( handle -> ior )
   >R
   DCB MyDCB DCBlength !
   MyDCB R> DUP >R GetCommState DROP
\ 9600 MyDCB BaudRate !
   1200 MyDCB BaudRate !
   0x80000000 MyDCB Mode !
   8 MyDCB ByteSize C!
   1 MyDCB StopBits C!
   2 MyDCB Parity C!
   MyDCB R> SetCommState ;

И всё равно 7 бит в байте...
Я сначала думал, померещилось. Посчитал клеточки, всё сходится.[/code]


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4956
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
MrYuran писал(а):
И всё равно 7 бит в байте...

в смысле передача ведется 7-и битовыми ээ последовательностями?

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


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

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


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

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


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

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