Ngaro là một máy ảo di động cho một kiến trúc dual-stack. Các tập lệnh cơ bản là một tập hợp con của Forth. Mặc dù bị giới hạn trong khả năng tương tác với các hệ điều hành cơ bản, nó nên là đủ để cho phép một loạt các chương trình được viết và chạy trên nó.
Các gói phần mềm bao gồm một số tài liệu cơ bản, toàn bộ mã nguồn, trình biên dịch máy ra, và một vài ví dụ nhỏ.
Cách sử dụng:
IMAGENAME ./ngaro
Các tập lệnh được giữ tối giản. Các thiết lập chính xác của hướng dẫn
thay đổi thường xuyên, nhưng trong danh sách sau đây đã ổn định trong khoảng một
năm. (Cuối cùng ba, đối phó với các I / O mẫu cổng cơ sở, là người mới)
0 NOP Liệu có gì
1 LIT Đẩy giá trị trong các tế bào sau đây để ngăn xếp
2 DUP Duplicate đầu
item trên stack
3 GIỌT Drop mục đầu
trên stack
4 SWAP Trao đổi hai đầu
các mặt hàng trên stack
5 PUSH Đẩy hàng top trên
ngăn xếp để các
địa chỉ stack, thả
TOS
6 POP Pop mục đầu
địa chỉ các ngăn xếp off
và đặt nó trên
dữ liệu ngăn xếp
7 CALL Gọi địa chỉ mà
các chữ sau đây
tương ứng với
8 JUMP Chuyển đến địa chỉ
rằng sau đây
tương ứng với nghĩa đen
đến
9; Quay trở lại với người gọi,
sử dụng với CALL
10> JUMP nhảy có điều kiện. Nó
so sánh TOS và NOS.
11 bit Shift phải
25 0; Exit (và thả) nếu
TOS là 0
26 1+ Tăng TOS của 1
27 1- Decrement TOS của 1
28 IN đọc một cổng
29 OUT Store để một cổng
30 WAIT Chờ một cổng cơ sở
yêu cầu để kết thúc
Nếu không được hỗ trợ một opcode là gặp phải, đăng ký IP interal được thiết lập để
kết thúc của bộ nhớ. Thực hiện các code hình ảnh sẽ tạm dừng khi điều này xảy ra.
Một vài hướng dẫn sử dụng của một tế bào sau đây có chứa các địa chỉ hay
giá trị. Đây là những:
1 LIT
7 CALL
8 JUMP
10> nhảy
11
là gì mới trong phiên bản này:.
- Phiên bản này mang lại cập nhật các phiên bản của tất cả hiện thực và tài liệu cập nhật đáng kể
- Hiện nay có 14 triển khai viết bằng Python, Ruby, Perl, Common Lisp, x86 hội, ANS Forth, JavaScript, Retro, Lua, Java, C, C #, F #, và Go.
Bình luận không