Язык программирования Форт


Что такое память ? - часть 4


Наиболее важными из них являются @ (извлечь) и ! (занести, запомнить). Если в стеке на вершине находится адрес, то слово @ замещает адрес 16-разрядным (двухбайтовым) числом, которое хранится по этому адресу. Если так же на вершине находится адрес, а вторым элементом стека является число, то оператор ! производит запоминание этого числа по указанному адресу. Слово ! следует употреблять осмотрительно, так как можно изменить содержимое важной части памяти, если вы запишете не в то место памяти. Можно использовать слова @ и ! для того, чтобы узнать систему счисления или изменить ее при вводе и выводе чисел. В памяти имеется ячейка (адрес), в которой хранится основание системы счисления, которое действует в настоящий момент при вводе-выводе чисел. Этот адрес выдается в стек когда вы вводите слово BASE. Давайте его испытаем. Вначале дадим компьютеру задание принимать и выводить числа в десятичной системе счисления с помощью слова DECIMAL (десятичный). Слово DECIMAL изменяет число, которое хранится по адресу, возвращаемому в стек словом BASE, на 10 (десятичная система). Теперь основание может быть сделано шестнадцатеричным (основание 16), если ввести

16 BASE !

Слово BASE помещает на вершину стека соответствующий адрес, затем в этот адрес записывается число 16. Заметим, кстати, что слово BASE -- это особая переменная, так называемая переменная пользователя. Переменная -- это слово, которое выдает адрес, где может храниться число; мы обсудим ее более детально в . Форт не нуждается в большом количестве переменных, как другие языки программирования, так как он может хранить числа в стеке. Теперь, когда компьютер использует шестнадцатеричную систему счисления, вы можете ввести

1В DECIMAL .

и получите

12 Ok

Число 12 в десятичной записи -- это то же самое, что 1В в шестнадцатеричной. Следующий пример произведет обратное действие:

13 16 BASE ! .

выдаст на экране 1С, т.е. шестнадцатеричный эквивалент числа 13. Слово HEX, которое не является стандартным, включено в большинство версий Форта.


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