Forth
http://fforum.winglion.ru/

PICK наоборот
http://fforum.winglion.ru/viewtopic.php?f=2&t=3039
Страница 1 из 2

Автор:  Hishnik [ Пт мар 13, 2015 02:33 ]
Заголовок сообщения:  PICK наоборот

А как можно назвать слово, которое выполняет операцию, обратную PICK - записывает число стека в ячейку, отстоящую на N от вершины?

Автор:  Alex [ Пт мар 13, 2015 09:01 ]
Заголовок сообщения:  Re: PICK наоборот

-PICK (по аналогии -ROT) или KCIP (PICK наоборот)

Автор:  diver [ Пт мар 13, 2015 09:26 ]
Заголовок сообщения:  Re: PICK наоборот

на ROLL похоже

Автор:  Hishnik [ Пт мар 13, 2015 10:54 ]
Заголовок сообщения:  Re: PICK наоборот

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

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

Автор:  diver [ Пт мар 13, 2015 10:56 ]
Заголовок сообщения:  Re: PICK наоборот

пусть будет чем-ндь типа INSERT )))

Автор:  gudleifr [ Пт мар 13, 2015 11:59 ]
Заголовок сообщения:  Re: PICK наоборот

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

Автор:  KPG [ Пт мар 13, 2015 17:07 ]
Заголовок сообщения:  Re: PICK наоборот

Например POKE или <PICK

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

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

Автор:  Hishnik [ Пт мар 13, 2015 17:34 ]
Заголовок сообщения:  Re: PICK наоборот

Если из стека есть произвольное чтение по PICK, то почему не быть произвольной записи? Тем более что true-grue сделал компилятор, который как раз этим смог бы воспользоваться. Пока что форт-процессор эффективно выполняет программы на Форте, а для Си-подобных языков должен заводить стековые кадры в памяти. Работать с этими кадрами внутри ядра было бы быстрее и удобнее с точки зрения генерации кода.

Автор:  mOleg [ Пт мар 13, 2015 18:15 ]
Заголовок сообщения:  Re: PICK наоборот

stuff
cram

Автор:  gudleifr [ Пт мар 13, 2015 19:08 ]
Заголовок сообщения:  Re: PICK наоборот

KPG писал(а):
на@#$ cсылка на СВОЁ неприкасаемое мнение?
Чтобы не выходить на новый виток дурости. Очевидно.

Автор:  Hishnik [ Пт мар 13, 2015 19:49 ]
Заголовок сообщения:  Re: PICK наоборот

gudleifr писал(а):
Чтобы не выходить на новый виток дурости. Очевидно.

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

Автор:  Zinger [ Ср мар 25, 2015 20:24 ]
Заголовок сообщения:  Re: PICK наоборот

Hishnik писал(а):
gudleifr писал(а):
Чтобы не выходить на новый виток дурости. Очевидно.

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

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

Автор:  Victor__v [ Чт июн 07, 2018 14:24 ]
Заголовок сообщения:  Re: PICK наоборот

SP+!
DSAVE

Автор:  chess [ Чт июн 07, 2018 23:08 ]
Заголовок сообщения:  Re: PICK наоборот

Код:
: 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 )

Автор:  Victor__v [ Пт июн 08, 2018 00:22 ]
Заголовок сообщения:  Re: PICK наоборот

Кажется, вопрос стоял только об названии...

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