Редактирование: 2DROP

Перейти к навигации Перейти к поиску
Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы войдёте или создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.

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

Текущая версия Ваш текст
Строка 13: Строка 13:
             Удаляет пару-ячеек x1 x2 из стека.
             Удаляет пару-ячеек x1 x2 из стека.


== История ==
== 2DROP в предыдущем стандарте Forth-83 (англ.) ==
В Форте слово 2DROP — одно из самых древних и устоявшихся, не менялось с 1979 года.
 
В [[Каллисто]] редко возникает необходимость в числовых парах, поэтому слово 2DROP используется реже, чем в классическом Форте.
 
=== 2DROP в предыдущем стандарте Forth-83 (англ.) ===
       2DROP        32b --                        79          "two-drop"
       2DROP        32b --                        79          "two-drop"
           32b is removed from the stack.
           32b is removed from the stack.


=== 2DROP в стандарте Forth-79 (англ.) ===
== 2DROP в стандарте Forth-79 (англ.) ==
  2DROP          d --                                      "two-drop"
  2DROP          d --                                      "two-drop"
     Drop the top double number on the stack.
     Drop the top double number on the stack.


== Реализация ==
== Заметки ==
В [[Каллисто|Каллисто 1.0]] слово 2DROP реализовано, как [[примитив]]:
В [[Каллисто]] 2DROP реализовано, как [[примитив]]. Но при необходимости 2DROP можно легко выразить через [[DROP]]:
<pre>
1946 ;#TwoDROP
1947 ; 2DROP            ( y x −− )                          Убрать пару чисел.
1948 LDDROP:        .DB    5
1949                .TEXT  "2DROP"                ; ( dd −− )
1950                .DW    LROT
1951 DDROP:          .DW    JDDROP
1952 JDDROP:        2 PGOTO NDROP                  ; Удалить из стека число двойной длины.
2053 NDROP:          RM3 + M3                        ; А сюда сваливается 2DROP
2054                KGOTO9
</pre>
Но при необходимости 2DROP можно легко выразить через [[DROP]]:
  : 2DROP  ( y x --)  DROP DROP ;
  : 2DROP  ( y x --)  DROP DROP ;
Реализация из SP-Forth 4.20:
<pre>
CODE 2DROP ( x1 x2 -- ) \ 94
\ Убрать со стека пару ячеек x1 x2.
    MOV EAX, 4 [EBP]
    LEA EBP, 8 [EBP]
    RET
END-CODE
</pre>


=== Советская реализация ===
== История ==
В Форте слово 2DROP — одно из самых древних и устоявшихся, не менялось с 1979 года.
 
В [[Каллисто]] редко возникает необходимость в числовых парах, поэтому слово 2DROP используется реже, чем в классическом Форте.
 
== Реализация ==
Слово 2DROP в ядре ФОРТ-ЕС было определено через [[DROP]]
Слово 2DROP в ядре ФОРТ-ЕС было определено через [[DROP]]
<PRE>
<PRE>
Строка 83: Строка 61:
[[Категория:Примитивы]]
[[Категория:Примитивы]]
[[Категория:Стековые манипуляции Каллисто]]
[[Категория:Стековые манипуляции Каллисто]]
[[Категория:Стандартные слова]]
[[Категория:1994 CORE]]
[[Категория:2012 CORE]]
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)
Источник — https://pmk.the-hacker.ru/2DROP