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 писал(а): Чтобы не выходить на новый виток дурости. Очевидно. О! Значит, неплохая идея, надо развивать... Парировал неожиданно мощно. |
Автор: | 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/ |