Ngaro היא מכונה וירטואלית ניידת לארכיטקטורת dual-ערימה. מערך ההוראות הוא למעשה תת קבוצה של עוד. למרות מוגבל ביכולתה לקיים אינטראקציה עם מערכת ההפעלה שבבסיס, זה צריך להיות מספיק כדי לאפשר מגוון רחב של תוכניות להיכתב ולרוץ על זה.
החבילה כוללת כמה תיעוד בסיסי, קוד מקור מלא, מהדר שוב מכונה, וכמה דוגמאות קטנות.
שימוש:
imagename ./ngaro
מערך ההוראות נשמר מינימליסטי. הסט של הוראות המדויקות
שינויים מעת לעת, אבל הרשימה הבאה היו יציבים במשך כ
שנה. (שלוש האחרונים, העוסקים במודל I / O מבוסס נמל, חדשים)
0 תמ"א האם דבר
1 LIT דחוף את הערך בתא הבא לערימה
2 DUP כפול העליון
פריט בערימה
3 DROP שחרר את הפריט העליון
על הערימה
4 SWAP Exchange שני העליונים
פריטים בערימה
5 PUSH דחוף את הפריט העליון ב
המחסנית ל
ערימת כתובת, שחררת
TOS
6 POP פופ הפריט העליון של
כתובת מחסנית מ
ולשים אותו על
ערימת נתונים
7 התקשר הכתובת ש
המילולי הבא
מתאים ל
קפיצה 8 JUMP לכתובת
כי הבא
מקבילה מילולי
ל
9; לחזור למתקשר,
בשימוש עם CALL
10> קפיצה מותנית. זה
משווה TOS וNOS.
11 סיביות Shift ימני
25 0; יציאה (וירידה) אם
TOS הוא 0
26 1+ תוספת TOS ידי 1
27 1 TOS הפחה על ידי 1
28 בקראו נמל
חנות 29 לנמל
המתן 30 לחכות מבוסס נמל-
תבקש לסיים
אם opcode שאינו נתמך הוא נתקל, ההרשמה IP interal מוגדרת
הסוף של זיכרון. ביצוע של קוד התמונה לעצור כאשר זה קורה.
כמה הוראות לעשות שימוש בתא הבא כדי להכיל כתובות או
ערכים. אלו הם:
1 ליטר
7 CALL
8 JUMP
10> קפיצה
11
מה חדש בהודעה זו:.
- גרסה זו מביאה גרסאות מעודכנות של כל היישומים ומסמכים מעודכנים באופן משמעותי
- כיום יש 14 יישומים שנכתבו בפייתון, רובי, פרל, Common Lisp, x86 עצרת, ans Forth, JavaScript, רטרו, Lua, Java, C, C #, F #, ולך.
תגובות לא נמצא