В этом месте мы совершим небольшое отвлечение в сторону, чтобы познакомиться с некоторыми словами для перемещения чисел между памятью и стеком. Для всех таких слов предварительно нужно задать адрес в памяти, с которым они работают. Вам уже знакомы слова @, !, С@ и С!. Слова 2@ и 2! соответственно извлекают и запоминают числа двойной длины. В некоторых версиях и в MMSFORTH определены также слова 4@ и 4! для работы с 4-байтовыми числами, с помощью которых представляются числа с плавающей запятой. Несколько отличаются слова ? и +!. Слово ? (обязательное в Форт-79, но не включенное в Форт-83) может быть определено просто как : ? ( addr - ) @ . ;
Оно извлекает число из ячейки памяти и печатает его на экране. Аналогично можно определить слово С? (имеющееся в MMSFORTH и других версиях) для извлечения и печати одного байта. Стандартное слово +! добавляет второе число из стека к числу, содержащемуся в ячейке с адресом, который находится на вершине стека. Так, если в ячейке памяти с адресом 22345 содержится число 250, то 5 22345 +! изменит содержимое на 255. Это равносильно следующим действиям : 22345 @ 5 + 22345 ! но выполняется значительно быстрее. Очевидно, что с помощью ALLOT можно резервировать место для размещения более двух байтов.