دليل الآلة

مرجع تعليمات الرموز التعبيرية

اكتب الرمز التعبيري أو اسم التعليمة. تحمل السجلات R0–R7 أعدادًا صحيحة آمنة؛ وR0 هو المُجمِّع. للذاكرة 256 عنوان بايت (0–255). يحتفظ الحساب بالقيم الصحيحة كاملةً؛ وتستخدم عمليات البتات أعدادًا موقّعة ذات 32 بت.

تنتهي الوسوم بنقطتين رأسيتين. تستهدف القفزات وسومًا أو فهارس تعليمات تبدأ من صفر، وتتجاهل الأسطر الفارغة والتعليقات. تبدأ # تعليقًا. تقرأ LOAD [10] الذاكرة؛ وتحمّل LOAD 10 العدد 10 نفسه.

التعليمات الـ25 كلها
الرمز التعبيرياسم التعليمة ومعاملاتهاالسلوكالمختبر
📥LOAD قيمة [سجل]حمّل قيمةً أو سجلًا أو بايتًا من الذاكرة.
LOAD · جرّب تعليمةً في المختبر ←
LOAD 42
PRINT
HALT

المخرجات المتوقعة: 42

افتح المختبر ←
💾STORE [قيمة] عنواناكتب أدنى بايت لقيمة في الذاكرة.
STORE · جرّب تعليمةً في المختبر ←
LOAD 42
STORE 10
STORE 511 11
LOAD [10]
PRINT
LOAD [11]
PRINT
HALT

المخرجات المتوقعة: 42, 255

افتح المختبر ←
📋COPY سجل-المصدر سجل-الوجهةانسخ سجلًا إلى سجل آخر.
COPY · جرّب تعليمةً في المختبر ←
LOAD 7 R1
COPY R1 R2
LOAD R2
PRINT
HALT

المخرجات المتوقعة: 7

افتح المختبر ←
➕ADD قيمةأضف قيمةً إلى R0.
ADD · جرّب تعليمةً في المختبر ←
LOAD 10
ADD 5
PRINT
HALT

المخرجات المتوقعة: 15

افتح المختبر ←
➖SUB قيمةاطرح قيمةً من R0.
SUB · جرّب تعليمةً في المختبر ←
LOAD 10
SUB 3
PRINT
HALT

المخرجات المتوقعة: 7

افتح المختبر ←
✖️MUL قيمةاضرب R0 بقيمة.
MUL · جرّب تعليمةً في المختبر ←
LOAD 6
MUL 7
PRINT
HALT

المخرجات المتوقعة: 42

افتح المختبر ←
➗DIV قيمة-غير-صفريةاقسم R0 مع التقريب نحو سالب ما لا نهاية.
DIV · جرّب تعليمةً في المختبر ←
LOAD -9
DIV 4
PRINT
HALT

المخرجات المتوقعة: -3

افتح المختبر ←
📊MOD قيمة-غير-صفريةاحسب باقي R0 ذا الإشارة.
MOD · جرّب تعليمةً في المختبر ←
LOAD -9
MOD 4
PRINT
HALT

المخرجات المتوقعة: -1

افتح المختبر ←
🔀AND قيمةطبّق AND بتًا بتًا على R0 وقيمة.
AND · جرّب تعليمةً في المختبر ←
LOAD 13
AND 5
PRINT
HALT

المخرجات المتوقعة: 5

افتح المختبر ←
🔃OR قيمةطبّق OR بتًا بتًا على R0 وقيمة.
OR · جرّب تعليمةً في المختبر ←
LOAD 5
OR 2
PRINT
HALT

المخرجات المتوقعة: 7

افتح المختبر ←
❌NOTاعكس بتات R0 الموقّعة ذات 32 بت.
NOT · جرّب تعليمةً في المختبر ←
LOAD 255
NOT
PRINT
HALT

المخرجات المتوقعة: -256

افتح المختبر ←
🔄XOR قيمةطبّق XOR بتًا بتًا على R0 وقيمة.
XOR · جرّب تعليمةً في المختبر ←
LOAD 42
XOR 6
PRINT
HALT

المخرجات المتوقعة: 44

افتح المختبر ←
⚖️CMP قيمةاضبط الرايات من R0 ناقص قيمة؛ واحتفظ بـR0.
CMP · جرّب تعليمةً في المختبر ←
LOAD 7
CMP 7
JUMP_IF_ZERO same
LOAD 0
JUMP show
same: LOAD 1
show: PRINT
HALT

المخرجات المتوقعة: 1

افتح المختبر ←
⏭️JUMP وجهةاقفز إلى وسم أو فهرس تعليمة يبدأ من صفر.
JUMP · جرّب تعليمةً في المختبر ←
LOAD 1
JUMP show
LOAD 99
show: PRINT
HALT

المخرجات المتوقعة: 1

افتح المختبر ←
❓JUMP_IF_ZERO وجهةاقفز عندما تكون راية الصفر المحفوظة مفعّلة.
JUMP_IF_ZERO · جرّب تعليمةً في المختبر ←
LOAD 0
JUMP_IF_ZERO show
LOAD 99
show: PRINT
HALT

المخرجات المتوقعة: 0

افتح المختبر ←
🔁LOOP عددكرّر الكتلة المنتهية عند RETURN المقابلة.
LOOP · جرّب تعليمةً في المختبر ←
LOOP 0
LOAD 99
PRINT
RETURN
LOAD 1
LOOP 3
PRINT
ADD 1
RETURN
HALT

المخرجات المتوقعة: 1, 2, 3

افتح المختبر ←
🛑RETURNاختم دورة حلقة أو عُد من برنامج فرعي.
RETURN · جرّب تعليمةً في المختبر ←
LOAD 7
CALL increment
PRINT
HALT
increment: ADD 1
RETURN

المخرجات المتوقعة: 8

افتح المختبر ←
📞CALL وجهةاستدعِ برنامجًا فرعيًا واحفظ عنوان التعليمة التالية.
CALL · جرّب تعليمةً في المختبر ←
LOAD 3
CALL square
PRINT
LOAD 4
CALL square
PRINT
HALT
square: MUL R0
RETURN

المخرجات المتوقعة: 9, 16

افتح المختبر ←
🖨️PRINTأضف قيمة R0 الحالية إلى المخرجات.
PRINT · جرّب تعليمةً في المختبر ←
LOAD 3
PRINT
PRINT
HALT

المخرجات المتوقعة: 3, 3

افتح المختبر ←
📲INPUTاقرأ عددًا صحيحًا إلى R0؛ وانتظر عندما تكون المدخلات فارغة.
INPUT · جرّب تعليمةً في المختبر ←
INPUT
PRINT
HALT

مدخل صحيح: -5

المخرجات المتوقعة: -5

افتح المختبر ←
⬆️PUSHادفع R0 إلى مكدّس البيانات.
PUSH · جرّب تعليمةً في المختبر ←
LOAD 42
PUSH
LOAD 0
POP
PRINT
HALT

المخرجات المتوقعة: 42

افتح المختبر ←
⬇️POPأزل قيمةً من مكدّس البيانات إلى R0.
POP · جرّب تعليمةً في المختبر ←
LOAD 11
PUSH
LOAD 22
PUSH
POP
PRINT
POP
PRINT
HALT

المخرجات المتوقعة: 22, 11

افتح المختبر ←
⏹️HALT (أو STOP)توقّف عند التعليمة الحالية.
HALT · جرّب تعليمةً في المختبر ←
LOAD 7
PRINT
HALT
LOAD 99
PRINT

المخرجات المتوقعة: 7

افتح المختبر ←
💤SLEEP مللي-ثانيةاطلب تأخيرًا بالمللي ثانية من المستدعي.
SLEEP · جرّب تعليمةً في المختبر ←
LOAD 1
PRINT
SLEEP 100
LOAD 2
PRINT
HALT

المخرجات المتوقعة: 1, 2

افتح المختبر ←
⏸️NOPانتقل إلى الأمام دون تغيير القيم أو الرايات.
NOP · جرّب تعليمةً في المختبر ←
LOAD 7
CMP 7
NOP
JUMP_IF_ZERO show
LOAD 0
show: PRINT
HALT

المخرجات المتوقعة: 7

افتح المختبر ←

الرايات والحلقات والاستدعاءات

تعني Z أن أحدث نتيجة صفر. وتعني N أنها سالبة؛ وتعني O أنها خارج نطاق العدد الموقّع ذي 32 بت. تحدّث LOAD لأي سجل وCOPY والحسابات وتعليمات البتات وPOP وINPUT الرايات. تضبط CMP الرايات من R0 ناقص معاملها دون تغيير R0. تختبر JUMP_IF_ZERO راية Z، بما فيها نتيجة المقارنة.

تلتقط LOOP عددها مرةً واحدة وتكرّر كتلتها عبر RETURN المقابلة؛ ويتجاوز الصفر الكتلة. تستخدم CALL مكدّس عناوين عودة منفصلًا. تعود RETURN داخل دالة مستدعاة إلى المستدعي قبل متابعة حلقة خارجية. تستخدم PUSH وPOP مكدّس بيانات منفصلًا. يبدأ SP عند 255 وينقص مع مجموع عمق البيانات والاستدعاءات، حتى 256 عنصرًا.

تقرّب DIV نحو سالب ما لا نهاية؛ وMOD هي الباقي ذو الإشارة. تكتب STORE أدنى بايت (تصبح −1 بالقيمة 255). تنتظر INPUT حتى توفّر عددًا صحيحًا آمنًا. تطلب SLEEP تأخيرًا موقّتًا في المختبر؛ ولا تنتظر الآلة الافتراضية الحتمية نفسها. يمكن أن تنتهي البرامج بـHALT أو الوصول إلى النهاية؛ وتُعدّ وجهات التفرّع غير الصالحة أخطاءً.

جرّب تعليمةً في المختبر ←