Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 12:36

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: PICK наоборот
СообщениеДобавлено: Пт мар 13, 2015 02:33 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
А как можно назвать слово, которое выполняет операцию, обратную PICK - записывает число стека в ячейку, отстоящую на N от вершины?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: PICK наоборот
СообщениеДобавлено: Пт мар 13, 2015 09:01 
Не в сети

Зарегистрирован: Ср июл 05, 2006 14:44
Сообщения: 236
Благодарил (а): 0 раз.
Поблагодарили: 7 раз.
-PICK (по аналогии -ROT) или KCIP (PICK наоборот)


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

Зарегистрирован: Ср дек 06, 2006 09:23
Сообщения: 660
Благодарил (а): 7 раз.
Поблагодарили: 25 раз.
на ROLL похоже


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: PICK наоборот
СообщениеДобавлено: Пт мар 13, 2015 10:54 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
ROLL плох тем, что физически перемещает кучу данных произвольного размера. В форт-процессоре это совсем плохо, потому что команда перестает быть элементарной, а требует по сути подпрограммы, перетряхивающей весь массив. В этом плане PICK гораздо проще, потому что требует просто доступа к произвольной ячейке стека. По аналогии, раз уж можно ее прочитать, то надо и иметь возможность ее записать.

В развитие - доступ к стековому кадру. Адресация не от текущей вершины стека, а от вершины, запомненной на момент входа в выполняемое слово. Для этого потребуется стек указателей на стековые кадры (то есть попросту стек, хранящий DEPTH для каждого уровня вложенности слов).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: PICK наоборот
СообщениеДобавлено: Пт мар 13, 2015 10:56 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Ср дек 06, 2006 09:23
Сообщения: 660
Благодарил (а): 7 раз.
Поблагодарили: 25 раз.
пусть будет чем-ндь типа INSERT )))


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: PICK наоборот
СообщениеДобавлено: Пт мар 13, 2015 11:59 
http://fforum.winglion.ru/viewtopic.php?p=34751#p34751
Заменить "на@#$ нам локальные переменные?" на "на@#$ нам запись в стек?".


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: PICK наоборот
СообщениеДобавлено: Пт мар 13, 2015 17:07 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Например POKE или <PICK

gudleifr писал(а):
http://fforum.winglion.ru/viewtopic.php?p=34751#p34751
Заменить "на@#$ нам локальные переменные?" на "на@#$ нам запись в стек?".

на@#$ cсылка на СВОЁ неприкасаемое мнение? :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: PICK наоборот
СообщениеДобавлено: Пт мар 13, 2015 17:34 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Если из стека есть произвольное чтение по PICK, то почему не быть произвольной записи? Тем более что true-grue сделал компилятор, который как раз этим смог бы воспользоваться. Пока что форт-процессор эффективно выполняет программы на Форте, а для Си-подобных языков должен заводить стековые кадры в памяти. Работать с этими кадрами внутри ядра было бы быстрее и удобнее с точки зрения генерации кода.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: PICK наоборот
СообщениеДобавлено: Пт мар 13, 2015 18:15 
Не в сети
Moderator
Moderator
Аватара пользователя

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: PICK наоборот
СообщениеДобавлено: Пт мар 13, 2015 19:08 
KPG писал(а):
на@#$ cсылка на СВОЁ неприкасаемое мнение?
Чтобы не выходить на новый виток дурости. Очевидно.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: PICK наоборот
СообщениеДобавлено: Пт мар 13, 2015 19:49 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
gudleifr писал(а):
Чтобы не выходить на новый виток дурости. Очевидно.

О! Значит, неплохая идея, надо развивать...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: PICK наоборот
СообщениеДобавлено: Ср мар 25, 2015 20:24 
Hishnik писал(а):
gudleifr писал(а):
Чтобы не выходить на новый виток дурости. Очевидно.

О! Значит, неплохая идея, надо развивать...

Парировал неожиданно мощно. :wink:


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: PICK наоборот
СообщениеДобавлено: Чт июн 07, 2018 14:24 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1287
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
SP+!
DSAVE

_________________
Цель: сделать 64-битную Нову под Винду


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Код:
: NCELL! ( ... N PAR  -- )
  B=@P $ 4 B=B*# @BP=A 2DROP ; IMMEDIATE

SEE NCELL!

1 2 3 4 5 4 15 NCELL!

LOG
Код:
CODE NCELL!
5DA2B3 8B5D00           MOV     EBX , 0 [EBP]
5DA2B6 69DB04000000     IMUL    EBX , EBX , # 4
5DA2BC 89042B           MOV     [EBX] [EBP] , EAX
5DA2BF 8B4504           MOV     EAX , 4 [EBP]
5DA2C2 8D6D08           LEA     EBP , 8 [EBP]
5DA2C5 C3               RET     NEAR
END-CODE
( 19 bytes, 6 instructions )

Ok ( 1 15 3 4 5 )

_________________
С уважением, chess


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

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1287
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Кажется, вопрос стоял только об названии...

_________________
Цель: сделать 64-битную Нову под Винду


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

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


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

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


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

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