Ngaro е преносим виртуална машина за двуслойно архитектура. Наборът от инструкции по същество е подмножество на Forth. Макар и ограничен в способността си да общуват с извършените OS, то трябва да бъде достатъчна, за да се даде възможност на различни програми, за да бъдат написани и се движат по него.
Пакетът включва някои основни документи, пълен изходен код, машина напред компилатор, и няколко малки примери.
Употреба:
./ngaro imagename
Наборът от инструкции се съхранява минималистичен. Точният набор от инструкции
промени от време на време, но в следния списък е стабилен за около
година. (Последните три, занимаващи се с I / O модел порт-базирани, са нови)
0 NOP не прави нищо
1 LIT Push стойността на следната клетка на стека
2 DUP Duplicate върха
т на стека
3 DROP Drop горния елемент
на стека
4 SWAP Exchange първите две
елементи на стека
5 PUSH Бутнете горната точка от
стека до
адрес стак, пуснете
TOS
6 поп поп горната точка на
адреса стека разстояние
и го постави на
стак данни
7 CALL Call адреса, който
следната буквален
съответства
8 Направо към адреса
че следното
буквални съответства
към
9; Назад към събеседника,
използва с CALL
10> JUMP Conditional скок. То
сравнява TOS и NOS.
11 Изместване бита полето
25 0; Exit (и капка), ако
TOS е 0
26 1+ Increment TOS от 1
27 1- Декремент TOS от 1
28 в Прочетена пристанище
29 OUT Store до пристанище
30 ПОЧАКАЙТЕПОЧАКАЙТЕ за порт-базирани
поиска да завърши
Ако неподдържан Кодът се среща, на interal IP регистъра е настроен на
края на памет. Изпълнение на кода на изображението ще спре, когато това се случи.
Няколко инструкции да се възползват от следните клетката да съдържа адреси или
ценности. Това са:
1 LIT
7 CALL
8 JUMP
10> скок
11
Какво ново в тази версия:.
- Тази версия носи актуализирани версии на всички реализации и значително актуализира документация
- Сега има 14 внедрявания, написани на Python, Ruby, Perl, Обща Lisp, x86 събрание, АНО Forth, JavaScript, Retro, Lua, Java, C, C #, F #, и Го.
Коментари не е намерена