Code: Select all
(
С константами-массивами можно работать только в режиме интерпертации.
Но - голь на выдумки хитра!
Пример программки, которая на лету синтезирует массив из 3х переменных.
Причём массив может быть int short или byte
)
"dict.af" include
( Пустой массив А )
{ } array A "Пустой массив. A=" . A size . CR
( Переменные )
0x10 variable I1
0x20 variable I2
0x30 variable I3
( mode - хранит режим синтеза массива - byte, short или int )
"" variable mode
(
Слово array-syntes - синтезирует строку
"{ <mode> I1 I2 I3 }" и выполняет её в режиме интерпретации с
помощью слова doword, затем сохраняет синтезированный массив в том,
что находится на стеке.
)
: array-syntes "{ " mode + " I1 I2 I3 }" + doword swap !! ;
"Синтезируем массив байт" . CR
"byte" mode !!
A array-syntes
A VARDUMP
CR
"Синтезируем массив коротких целых" . CR
"short" mode !!
A array-syntes
A VARDUMP
CR
"Синтезируем массив целых" . CR
"int" mode !!
A array-syntes
A VARDUMP
CR