Всем привет!
Очередная проблема: как работать с массивами? В Хоуту написано:
Код:
variable my-array 42 cells allot
This makes the dictionary entry named my-array, sets up the link to the RAM address and allocates an additional amount of 42 cells in RAM.
The use of the array is quite simple:
Код:
: my-array-@ cells my-array + @ ;
: my-array-! cells my-array + ! ;
Предположим мне нужен массив из 16 элементов:
Код:
variable cmd 20 cells allot
: cmd@ cells cmd + @ ;
: cmd! cells cmd + ! ;
И как мне теперь запистаь/просмотреть содержимое массива? Хотелось бы иметь массив 0,1,...F
Код:
: setCmd 10 0 do i cmd! loop ;
: getCmd 10 0 do cmd@ . loop ;
далее заливаем на стэк 16 элементов и вызываем setCmd:
Код:
f e d c b a 9 8 7 6 5 4 3 2 1 0 setCmd
на стэке не остаётся ни одного из 16 элемента (перемещены в массив?)
попробуем посмотреть на массив:
Код:
getCmd
и получаю:
Код:
2 4 6 8 A C D 5C5C 0 0 0 F 0 0 E 2121
при повторном вызове
Код:
getCmd
система виснет!
Где собака порылась?