Дальше мы узнаем, что существует
Дальше мы узнаем, что существует слово 2DUP, которое выполняет ту же функцию, что и OVER OVER. Имеется целое семейство слов, которые оперируют в стеке парами чисел, но, так как они используются главным образом для операций с так называемыми числами двойной длины, мы их рассмотрим в .
Слово ROT (по-англ. "rotate" -- поворачивать) производит ротацию трех верхних чисел стека, т.е. перекладывает третье сверху число в стеке на его вершину, так что
1 2 3 ROT .8
приводит к
2 3 1 Ok
Третье сверху число в стеке перемещается на вершину стека, а следующие два числа продвигаются на одну позицию в глубь стека. Применения слова ROT поначалу не очевидны, но они также важны. Предположим, что вы хотите определить значение выражения (5+2) х (7+3), если в стеке находится 5 2 7 3.
Для решения введите
+ ROT ROT + х .
и вы получите
70 ok
Действие некоторых комбинаций слов, вроде приведенных в этом примере, достаточно трудно понять даже опытному программисту. Поэтому проследить, что происходит в стеке в последнем примере, вам поможет следующая таблица:
Операция |
Содержимое стека |
Содержимое стека |
Операция |
(стек в начале) |
(до - после) |
(до - после) |
(5 2 7 3 --) |
+ |
(- 10 7) |
+ |
(-- 5 2 10) |
х |
(- 70). |
ROT |
(- 2 10 5) |
(- стек пуст) |
ROT |
(- 10 5 2) |
Если требуется произвести сложные манипуляции в стеке вроде приведенного, составление такой таблицы может оказаться полезным. Наиболее часто возникновение ошибок в определении слова (программы) происходит при манипуляциях в стеке.
В отличие от предыдущих слов PICK требует аргумента -- числа, которое указывает, какое по счету число сверху вы хотите скопировать на вершину стека. Аргументом является номер числа, за начало принимается вершина стека, а счет ведется по направлению в глубь стека. Так, например, в стандарте Форт-79 операции
1 2 3 4 5 6 4 PICK .S
приводят к результату
1 2 3 4 5 6 3 ok
Но в стандарте Форт-83 вы увидели бы
1 2 3 4 5 б 2 ok
Это принципиальное и зачастую очень неудобное различие стандартов Форт-79 и Форт-83.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий