The Little Man Computer (LMC) هو ببساطة معالج دقيق ونظام كمبيوتر مصمم لتعليم برمجة التجميع للمبتدئين. لتبسيط الأمور، لم يتم تقديمه كجهاز كمبيوتر ثنائي، بل كجهاز عشري. تحتوي على 100 خلية ذاكرة مرقمة من 0 إلى 99. يمكنك وضع تعليمات البرنامج والبيانات هنا.
يمكن أن تحتوي كل خلية على رقم عشري مكون من 3 أرقام. يمكننا هنا تخزين التعليمات الخاصة بجهاز الكمبيوتر لأداء العمل أو البيانات للعمل عليها. تحتوي وحدة المعالجة المركزية على مُراكم واحد يُستخدم عند إجراء العمليات الحسابية. يوجد أيضًا مدخلات ومخرجات حيث يمكنك قراءة مدخلات المستخدم وكتابة المخرجات للمستخدم.
فيما يلي نظرة عامة بسيطة على مجموعة التعليمات. كل تعليمات هي في الواقع مجرد رقم مكون من 3 أرقام. ولكن عادةً عند البرمجة، يتعامل المرء مع اختصارات الحروف التي يسهل تذكرها. فيما يلي نصيحة حول كيفية قراءة الوصف أدناه. على سبيل المثال، تم وصف تعليمات Add
بأنها تحتوي على الرقم 1xx
. ما يعنيه هذا حقًا هو أن xx
هو المكان الذي تضع فيه معاملك (الوسيطة). إذن 142
هي تعليمات إضافة محتويات خلية الذاكرة 42 إلى محتويات المجمع.
ADD
1xx أضف محتوى على العنوان xx
في الذاكرة إلى المجمع.SUB
2xx يقوم بطرح محتويات العنوان xx
مما تم تخزينه في المجمع. تخزين النتيجة في تراكم.STA
3xx بتخزين المركم على العنوان xx
في الذاكرة.LDA
5xx مع محتويات العنوان xx
في الذاكرة.BRA
6xx انتقل إلى الموقع xx
في البرنامج.BRZ
7xx إذا كان المركم صفرًاBRP
8xx إذا كان المركم صفرًا أو أعلى (إيجابيًا).INP
901 يملأ المركم بالرقم من الإدخال.OUT
902 يدفع القيمة في المجمع إلى قائمة انتظار الإخراج.HLT
000 في مجلد الأمثلة، يمكنك العثور على المزيد من الأمثلة على البرامج. فيما يلي مثال لبرنامج يقرأ رقمًا من المدخلات ثم يقوم بالعد التنازلي. لذا، إذا قرأ 4 عند الإدخال، فسوف يكتب 4 و3 و2 و1 و0 على الإخراج.
INP
OUT
LOOP BRZ QUIT // Jump to QUIT if accumulator is 0
SUB ONE // Subtract from accumulator what is stored in ONE
OUT
BRA LOOP // Jump (unconditionally) to the memory address labeled LOOP
QUIT HLT // Label this memory address as QUIT
ONE DAT 1 // Store 1 in this memory address.
يمكنك أخذ برنامج مكتوب كالمثال وتخزينه في ملف وإعطاء اسم الملف هذا إلى وظيفة assemble(file)
التي ستنتج قائمة بأعداد صحيحة مكونة من 3 أرقام تمثل برنامجك وبياناتك. يمكنك تغذية هذا إلى وظيفة simulate!(program, inputs)
لتشغيل البرنامج الخاص بك. وسوف تفريغ الإخراج.
وبدلاً من ذلك، يمكنك نسخ هذا ولصقه ووضع الكود في أحد محاكيات LMC المستندة إلى الويب الموضحة أدناه.
يمكنك العثور على العديد من أجهزة المحاكاة المعتمدة على المتصفح لوحدة المعالجة المركزية LMC عبر الإنترنت. حيث يمكنك التنقل بين البرامج والمشاهدة المباشرة لكيفية عمل الكمبيوتر الافتراضي.
هناك العديد من الألعاب التي يمكنك لعبها بناءً على اختلافات طفيفة في فكرة LMC. من المحتمل أن تكون هذه طريقة رائعة لإشراك الأطفال في تعلم البرمجة.