Начальный курс программирования на языке Форт


ДВОЙНЫЕ ОПЕРАЦИИ1


Следующие четыре операции должны вам показаться знакомыми:

2SWAP

( dl d2 -- d2 dl )

Перестановка двух верхних пар элементов стека

2DUP

( d -- d d )

Дублирование верхней пары элементов стека.

2OVER

( d1 d2 -- dl d2 d1 )

Копирование второй пары элементов стека и размещение копии в вершине стека.

2ROT

( dl d2 d3 -- d2 d3 d1 )

Размещение третьего элемента в вершине стека.

2DROP

( d -- )

Удаление верхней пары элементов из стека.

Префикс 2 означает, что перечисленные стековые операции выполняются над парами чисел2, а буква d, используемая в стековой нотации, — что вместо нее подставляется «двойное» число.

1 Стандарт Форт-83. Эти слова входят в «Дополнительный перечень слов двойной точности».

2 Для специалистов. Эти операции также могут выполняться над числами двойной длины (32 бита, или разряда).

Это понятие имеет вполне конкретный смысл, который объясняется в гл. 7.

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

Ниже приводится перечень слов Форта, которые были введены в данной главе:

+

( nl n2 — сумма)

Сложение.

-

( n1 n2 — разность)

вычитание (nl-n2) .

*

( n1 л2 — произвел)

Умножение.

/

( n1 n2 — частное)

Деление (nl/n2) .

MOD

( nl n2 — n-остаток)

Деление. В стек заносится остаток от деления.

/MOD

( u1 u2 — n-остаток n— частное)

Деление, В стек заносятся остаток и частное»

SWAP

() n1 n2 — n2 n1)

Перестановка двух верхних элементов стека.

BUP

{ n — n n)

Дублирование верхнего элемента стека.

OVER

( nl n2 — nl n2 nl)

Копирование второго элемента и размещение копии в вершине стека.

ROT

( ni n2 n3 — n2 n3 nl)

Размещение третьего элемента в вершине стека.

DROP

( n — )

Удаление из стека верхнего элемента.

2SWAP

( dl d2 — d2 dl)

Перестановка двух верхних пар чисел.

2DUP

( d — d d)

Дублирование пары чисел, находящейся в вершине стека.

20VER

( d1 d2 -- dl d2 dl)

Копирование второй пары чисел и размещение копии в вершине стека.

2DROP

( d — )

Удаление из стека верхней пары элементов.

 




Начало  Назад  Вперед