جدول المحتويات:

كود واختبار جهاز كمبيوتر بلغة الآلة: 6 خطوات
كود واختبار جهاز كمبيوتر بلغة الآلة: 6 خطوات

فيديو: كود واختبار جهاز كمبيوتر بلغة الآلة: 6 خطوات

فيديو: كود واختبار جهاز كمبيوتر بلغة الآلة: 6 خطوات
فيديو: كود سري في الآلة الحاسبة في هاتفك هيبهرك 2024, شهر نوفمبر
Anonim
Image
Image

في هذا Instructable ، سأوضح لك كيفية ترميز واختبار برنامج كمبيوتر بلغة الآلة. لغة الآلة هي اللغة الأم لأجهزة الكمبيوتر. نظرًا لأنه يتكون من سلاسل من 1 و 0 ، فلا يسهل على البشر فهمها. للتغلب على هذا ، نقوم بترميز البرامج أولاً بلغة عالية المستوى مثل C ++ أو Java ثم نستخدم برامج كمبيوتر خاصة لترجمتها إلى أجهزة الكمبيوتر 1 و 0 التي تفهمها. من المؤكد أن تعلم البرمجة بلغة عالية المستوى هو أمر لا يحتاج إلى تفكير ، لكن مقدمة موجزة للغة الآلة يمكن أن توفر نظرة ثاقبة حول كيفية عمل أجهزة الكمبيوتر وتزيد من تقدير هذه التكنولوجيا المهمة للغاية.

لتشفير واختبار برنامج لغة الآلة ، نحتاج إلى الوصول إلى جهاز كمبيوتر بدون زخرفة يمكن فهم لغة الآلة الخاصة به بسهولة. أجهزة الكمبيوتر الشخصية معقدة للغاية بحيث لا يمكن حتى التفكير فيها. الحل هو استخدام Logisim ، وهو جهاز محاكاة منطقي ، يعمل على جهاز كمبيوتر شخصي. مع Logisim يمكننا محاكاة جهاز كمبيوتر يلبي احتياجاتنا. يمنحك الفيديو أعلاه فكرة عما يمكننا تحقيقه باستخدام Logisim.

بالنسبة لتصميم الكمبيوتر ، قمت بتكييف واحد من كتابي الإلكتروني Kindle قم ببناء جهاز الكمبيوتر الخاص بك - من الصفر. لقد بدأت مع الكمبيوتر BYOC الموصوف هناك وقمت بقصه إلى BYOC-I الأساسي المتنوع (I for Instructable) الذي سنستخدمه في هذا Instructable.

لغة الآلة الخاصة بـ BYOC-I بسيطة وسهلة الفهم. لن تحتاج إلى أي معرفة خاصة بأجهزة الكمبيوتر أو البرمجة. كل ما هو مطلوب هو عقل فضولي ورغبة في التعلم

قراءة متعمقة

قد تتساءل لماذا نستخدم "آلة" لوصف الكمبيوتر عندما لا يكون جهازًا ميكانيكيًا. السبب تاريخي. كانت أجهزة الحوسبة الأولى ميكانيكية تتكون من تروس وعجلات. قصيدة آلان شيرمان الغنائية ، "كانت كل التروس تسير بسرعة كبيرة …" كانت فقط بعد قرن أو قرنين. اقرأ المزيد عن الحوسبة المبكرة هنا.

الخطوة 1: قائمة الأجزاء

التسلسل الهرمي للغة الآلة والرموز
التسلسل الهرمي للغة الآلة والرموز

قائمة الأجزاء قصيرة. مطلوب هذان العنصران فقط ، وكلاهما قابل للتنزيل مجانًا:

  1. "Logisim-win-2.7.1.exe" - Logisim هو محاكاة منطقية شائعة وسهلة الاستخدام. قم بتنزيل ملف Logisim القابل للتنفيذ من هنا ثم أنشئ اختصارًا في مكان مناسب مثل سطح المكتب. انقر نقرًا مزدوجًا فوق رمز Logisim لتشغيله. ملاحظة: يستخدم Logisim حزمة Java Runtime Package الموجودة هنا. قد يُطلب منك تنزيله.
  2. BYOC-I-Full.cir "- قم بتنزيل ملف دائرة Logisim أدناه.

قم بتشغيل Logisim ثم انقر فوق "فتح ملف" وقم بتحميل ملف BYOC-I-Full.cir. توضح الصورة أعلاه بيئة عمل Logisim. يتم تمثيل BYOC-I بواسطة كتلة الدائرة الفرعية. متصل خارجيًا هما مدخلان ، إعادة تعيين وتشغيل ، وشاشات سداسية عشرية لسجلات BYOC-I وذاكرة البرنامج.

يتم تحميل ذاكرة برنامج BYOC-I مسبقًا مع برنامج بسيط يعد من 1 إلى 5 في السجل A. لتنفيذ (تشغيل) البرنامج ، اتبع هذه الخطوات.

الخطوة 1 - انقر فوق أداة Poke Tool. يجب أن يتغير المؤشر إلى "إصبع" الوخز. الخطوة 2 - قم بوخز إدخال إعادة التعيين مرتين ، مرة واحدة قم بتغييره إلى "1" ومرة أخرى لتغييره مرة أخرى إلى "0". يؤدي هذا إلى إعادة تعيين BYOC-I لبدء البرنامج على العنوان 0. الخطوة 3 - قم بوخز إدخال التشغيل مرة واحدة لتغييره إلى "1". يجب أن يُظهر السجل A العدد يتغير من 1 إلى 5 ثم يتكرر الخطوة 4 - إذا لم يتم تنفيذ البرنامج ، فاضغط على control-K ويجب أن يبدأ.

إذا كنت ترغب في استكشاف إمكانات Logisim ، فانقر فوق ارتباط المساعدة في شريط القوائم. من هناك ، يمكنك استكشاف Logisim "Tutorial" و "User Guide" و "Library Reference". تم العثور على مقدمة فيديو ممتازة هنا.

الخطوة 2: التسلسل الهرمي للغة الآلة والرموز

التسلسل الهرمي للغة الآلة والرموز
التسلسل الهرمي للغة الآلة والرموز

ينفذ الكمبيوتر BYOC-I المهام بناءً على البرامج المكتوبة بلغة الآلة. تتكون برامج BYOC-I بدورها من التعليمات التي يتم تنفيذها في تسلسل محدد جيدًا. تتكون كل تعليمات من أكواد ذات طول ثابت تمثل مختلف المكونات التشغيلية لـ BYOC-I. أخيرًا ، تتكون هذه الرموز من سلاسل من 1s و 0s تشكل لغة الآلة التي ينفذها BYOC-I بالفعل.

على سبيل التوضيح ، سنبدأ بالرموز ونعمل في طريقنا إلى مستوى البرنامج. ثم سنقوم بتشفير برنامج بسيط ، وتحميله في ذاكرة BYOC-I ، ثم نقوم بتنفيذه.

تتكون الرموز من عدد ثابت من الأرقام الثنائية (1 و 0) أو بتات ، باختصار. على سبيل المثال ، يوضح الجدول أدناه جميع الرموز الممكنة (16 في الكل) لرمز بعرض 4 بت. يظهر جنبًا إلى جنب الرمز السداسي العشري (الأساس 16) والمكافئ العشري. يستخدم النظام السداسي عشري في الإشارة إلى القيم الثنائية لأنه أكثر إحكاما من النظام الثنائي ويسهل تحويله من النظام الثنائي منه إلى النظام العشري. تتيح لك البادئة "0x" معرفة أن الرقم التالي هو رقم سداسي عشري أو "سداسي عشري" للاختصار.

ثنائي - سداسي عشري - عشري 10000 0x0000 00001 0x0001 10010 0x0002 20011 0x0003 30100 0x0004 40101 0x0005 50111 0x0007 71000 0x0008 81001 0x0009 91010 0x000A 101011 0x000B 111100 0x000C 121101 0x000D 131110

يحدد عرض الكود عدد العناصر التي يمكن تمثيلها. كما لوحظ ، يمكن أن يمثل الرمز العريض 4 بت أعلاه ما يصل إلى 16 عنصرًا (0 إلى 15) ؛ أي 2 في 2 مأخوذ أربع مرات أو من 2 إلى 4 يساوي 16. بشكل عام ، عدد العناصر القابلة للتمثيل هو 2 مرفوعًا إلى الأس n. فيما يلي قائمة مختصرة بقدرات رمز n بت.

n - عدد العناصر 1 22 43 84165326647 1288256

يتم اختيار عروض رموز الكمبيوتر BYOC-I لاستيعاب عدد العناصر التي سيتم تمثيلها بواسطة الكود. على سبيل المثال ، هناك أربعة أنواع من التعليمات ، لذا فإن كود 2 بت العريض مناسب. فيما يلي رموز BYOC-I مع شرح موجز لكل منها.

كود نوع التعليمات (tt) هناك أربعة أنواع من التعليمات: (1) MVI - انقل قيمة ثابتة 8 بت في سجل الذاكرة. مسجل الذاكرة هو جهاز يحتفظ بالبيانات لاستخدامها في الحساب ، (2) MOV - نقل البيانات من سجل إلى آخر ، (3) RRC - إجراء حساب للتسجيل للتسجيل ، و (4) JMP - الانتقال لتعليمات مختلفة بدلاً من الاستمرار في التعليمات التالية. رموز نوع التعليمات BYOC-I المعتمدة هي كما يلي:

00 MVI01 MOV10 RRC11 جمب

كود التسجيل (dd and ss) يحتوي BYOC-I على أربعة سجلات 8 بت قادرة على تخزين القيم من 0 إلى 255. رمز 2 بت كافٍ لتعيين السجلات الأربعة:

00 F سجل 01 E سجل 10 D سجل 11 A سجل

رمز الحساب (ccc) يدعم BYOC-I أربع عمليات حسابية / منطقية. للسماح بالتوسع المستقبلي إلى ثماني عمليات حسابية ، يتم استخدام رمز 3 بت:

000 ADD ، أضف قيمتين 8 بت في السجلات المخصصة وقم بتخزين النتيجة في أحد السجلات 001 SUB ، اطرح قيمتين 8 بت في سجلات معينة وقم بتخزين النتيجة في أحد السجلات 010 - 011 محجوزة للاستخدام المستقبلي 100 AND ومن المنطقي وقيمتين 8 بت في سجلات معينة وتخزين النتيجة في أحد السجلات 101 أو منطقيًا أو قيمتين 8 بت في سجلات معينة وتخزين النتيجة في أحد السجلات 110 إلى 111 ، محجوزة للاستخدام المستقبلي

Jump Code (j) رمز من 1 بت يشير إلى ما إذا كانت القفزة غير مشروطة (j = 1) أو مشروطة بنتيجة حسابية ليست صفرية (j = 0).

رمز البيانات / العنوان (v… v) / (a… a) يمكن تضمين بيانات 8 بت في تعليمات معينة تمثل قيمًا من 00000000 إلى 11111111 أو من 0 إلى 255 عشريًا. يبلغ عرض هذه البيانات 8 بت للتخزين في سجلات BYOC-I ذات 8 بت. باستخدام الحساب العشري ، لا نعرض الأصفار البادئة. باستخدام حساب الكمبيوتر ، نعرض الأصفار البادئة ولكنها لا تؤثر على القيمة. 00000101 عدديًا هو نفس الرقم 101 أو 5 العشري.

المراجع المقترحة

تدوين ثنائي - https://learn.sparkfun.com/tutorials/binaryHexadecimal تدوين -

قراءة متعمقة

تعود فكرة استخدام الرموز لدفع العملية إلى زمن بعيد. أحد الأمثلة الرائعة هو Jacquard Loom. تم التحكم في النول الآلي بواسطة سلسلة من البطاقات الخشبية التي تم فيها حفر ثقوب تمثل رموز خيوط ملونة مختلفة للنسيج. رأيت أول واحد لي في اسكتلندا حيث تم استخدامه لصنع الترتان الملون. اقرأ المزيد عن Jacquard Looms هنا.

الخطوة 3: تشريح تعليمات BYOC-I

تشريح تعليمات BYOC-I
تشريح تعليمات BYOC-I

بالنظر إلى رموز BYOC-I ، ننتقل إلى المستوى التالي ، التعليمات. لإنشاء تعليمات لـ BYOC-I ، نضع الرموز معًا بترتيب محدد وفي مواقع محددة ضمن التعليمات. لا تظهر جميع الرموز في جميع التعليمات ، ولكن عند حدوث ذلك ، فإنها تشغل موقعًا محددًا.

يتطلب نوع تعليمات MVI أكبر عدد من البتات ، 12 في المجموع. من خلال جعل كلمة التعليمات بطول 12 بتًا ، فإننا نستوعب جميع التعليمات. يتم إعطاء البتات غير المستخدمة (تسمى "لا تهتم") القيمة 0. هنا مجموعة تعليمات BYOC-I.

  1. نقل فوري (MVI) - 00 dd vvvvvvvv الوظيفة: نقل قيمة بيانات 8 بت V = vvvvvvvv إلى الوجهة تسجيل dd. بعد التنفيذ ، سيكون للتسجيل dd القيمة vvvvvvvv. الاختصار: MVI R ، V حيث R هي A أو D أو E أو F. مثال: 00 10 00000101 - MVI D ، 5 - انقل القيمة 5 إلى سجل D.
  2. نقل السجل إلى السجل (MOV) - 01 dd ss 000000 الوظيفة: نقل البيانات من سجل المصدر ss إلى سجل إزالة البيانات dd. بعد التنفيذ ، يكون لكلا السجلين نفس قيمة سجل المصدر. الاختصار: MOV Rd ، Rs حيث يكون Rd هو سجل الوجهة A أو D أو E أو F و Rs هو سجل المصدر A أو D أو E أو F. مثال: 01 11 01 000000 - MOV A ، E - حرك القيمة في السجل E للتسجيل A.
  3. التسجيل في حساب التسجيل (RRC) - 10 dd ss ccc 000 الوظيفة: قم بإجراء الحساب المعين ccc باستخدام سجل المصدر ss وسجل الوجهة dd ثم تخزين النتيجة في سجل الوجهة. الاختصارات: ADD Rd، Rs (ccc = 000 Rd + Rs المخزنة في بحث وتطوير)؛ طريق SUB ، Rs (ccc = 001 Rd - Rs مخزنة في Rd) ؛ AND Rd ، Rs (ccc = 100 Rd AND Rs مخزنة في Rd) ؛ أو Rd ، Rs (ccc = 101 Rd أو Rs مخزنة في Rd) مثال: 10 00 110001 - SUB F، A - اطرح القيمة في السجل A من السجل F مع النتيجة في السجل F.
  4. الانتقال إلى تعليمات مختلفة (JMP) - 11 j 0 aaaaaaaa الوظيفة: تغيير التنفيذ إلى تعليمات مختلفة موجودة في العنوان aaaa aaaa (أ) بدون قيد أو شرط (j = 1) -11 1 0 aaaaaaaaAbbreviation: JMP L حيث L هو عنوان aaaa aaaa مثال: 11 1 0 00001000 - JMP 8 - تغيير التنفيذ إلى العنوان 8. (ب) بشكل مشروط (j = 0) عندما نتج عن الحساب السابق نتيجة ليست صفرية - 11 0 0 aaaaaaaaAbbreviation: JNZ L حيث L هو عنوان aaaa aaaa. مثال: 11 0 0 00000100 JNZ 4 إذا أسفرت العملية الحسابية الأخيرة عن قيمة غير صفرية ، فقم بتغيير التنفيذ إلى العنوان 4.

يتم ترقيم بتات كلمة التعليمات من اليسار (أهم بتة MSB) إلى اليمين (بت الأقل دلالة LSB) من 11 إلى 0. الترتيب الثابت ومواقع الرموز كما يلي:

بت - الرمز 11-10 نوع التعليمات 9-8 سجل الوجهة7-6 سجل المصدر 5-3 الحساب: 000 - أضف ؛ 001 - طرح ؛ 100 - منطقي AND ؛ 101 - قيمة ثابتة OR7-0 منطقية v… v و a… a (0 إلى 255)

تم تلخيص مجموعة التعليمات في الشكل أعلاه. لاحظ المظهر المنظم والمنظم للرموز في كل تعليمات. والنتيجة هي تصميم أبسط لـ BYOC-I وتسهل على الإنسان فهم التعليمات.

الخطوة 4: ترميز تعليمات الكمبيوتر

ترميز تعليمات الكمبيوتر
ترميز تعليمات الكمبيوتر

قبل الانتقال إلى مستوى البرنامج ، دعنا ننشئ بعض الأمثلة على التعليمات باستخدام مجموعة تعليمات BYOC-I أعلاه.

1. انقل القيمة 1 للتسجيل A. يمكن لسجلات BYOC-I تخزين القيم من 0 إلى 255. في هذه الحالة ، سيكون للسجل A القيمة 1 (00000001 ثنائي) بعد تنفيذ التعليمات.

الاختصار: MVI A ، 1 الرموز المطلوبة: اكتب MVI - 00 ؛ سجل الوجهة A - 11 ؛ القيمة - 00000001 كلمة التعليمات: 00 11 00000001

2. انقل محتويات السجل A للتسجيل D. بعد التنفيذ ، سيكون لكلا السجلين القيمة الأصلية في السجل A.

الاختصار: MOV D، A (تذكر أن الوجهة هي الأولى والمصدر الثاني في القائمة) الرموز المطلوبة: اكتب MOV - 01 ؛ سجل الوجهة D - 10 ؛ المصدر سجل أ - 11 كلمة التعليمات: 01 10 11 000000

3. أضف محتويات السجل D للقيد A وتخزينه في السجل A. بعد التنفيذ ، ستكون قيمة السجل A هي مجموع القيمة الأصلية للسجل A والسجل D.

الاختصار: ADD A، D (يتم تخزين النتيجة في سجل الوجهة) الرموز المطلوبة: اكتب RRC - 10 ؛ سجل الوجهة A - 11 ؛ سجل المصدر D - 10 ؛ إضافة الحساب - 000 كلمة التعليمات: 10 11 10000000 (ccc أول 000 - أضف)

4. انتقل إلى ليس صفرًا إلى العنوان 3. إذا لم تكن نتيجة الحساب الأخير صفرًا ، فسيتغير التنفيذ إلى التعليمات الموجودة على العنوان المحدد. إذا كانت القيمة صفر ، فسيتم استئناف التنفيذ بناءً على التعليمات التالية.

الاختصار: JNZ 3 الرموز المطلوبة: اكتب JMP - 11 ؛ نوع القفز - 0 ؛ العنوان - 00000003 كلمة التعليمات: 11 0 0 00000003 (نوع الانتقال هو الأول 0)

5. الانتقال غير المشروط إلى العنوان 0. بعد التنفيذ ، يتغير التنفيذ إلى التعليمات الموجودة على العنوان المحدد.

الاختصار: JMP 0 الرمز المطلوب: اكتب JMP - 11 ؛ نوع القفز - 1 ؛ العنوان - 00000000 كلمة تعليمات ؛ 11 1 0 00000000

في حين أن تشفير الآلة مملة إلى حد ما ، يمكنك أن ترى أنه ليس صعبًا بشكل مستحيل. إذا كنت تقوم بترميز الآلة بشكل حقيقي ، فستستخدم برنامج كمبيوتر يسمى المُجمّع للترجمة من الاختصار (الذي يُسمى رمز التجميع) إلى رمز الجهاز.

الخطوة 5: تشريح برنامج الكمبيوتر

تشريح برنامج حاسوبي
تشريح برنامج حاسوبي

برنامج الكمبيوتر عبارة عن قائمة بالإرشادات التي ينفذها الكمبيوتر بدءًا من بداية القائمة واستمرارًا في القائمة حتى النهاية. يمكن لتعليمات مثل JNZ و JMP تغيير التعليمات التي يتم تنفيذها بعد ذلك. كل تعليمة في القائمة تحتل عنوانًا واحدًا في ذاكرة الكمبيوتر بدءًا من 0. يمكن أن تحتوي ذاكرة BYOC-I على قائمة من 256 تعليمة ، أكثر من كافية لأغراضنا.

برامج الكمبيوتر مصممة لأداء مهمة معينة. بالنسبة لبرنامجنا ، سنختار مهمة بسيطة ، بدءًا من 1 إلى 5. ومن الواضح أنه لا توجد تعليمات "عد" ، لذا فإن الخطوة الأولى هي تقسيم المهمة إلى خطوات يمكن معالجتها بواسطة BYOC-I. مجموعة تعليمات محدودة.

الخطوة 1 انقل 1 للتسجيل AS الخطوة 2 انقل السجل A لتسجيل D الخطوة 3 أضف السجل D للتسجيل A وتخزين النتيجة في السجل AStep 4 Move 5 لتسجيل EStep 5 اطرح السجل A من السجل E وقم بتخزين النتيجة في السجل ES الخطوة 6 إذا لم تكن نتيجة الطرح صفراً ، ارجع إلى الخطوة 4 واستمر في العد الخطوة 7 إذا كانت نتيجة الطرح صفراً ، عد إلى الوراء وابدأ من جديد

الخطوة التالية هي ترجمة هذه الخطوات إلى تعليمات BYOC-I. تبدأ برامج BYOC-I من العنوان 0 ورقمها على التوالي. تتم إضافة عناوين هدف الانتقال أخيرًا بعد وضع جميع الإرشادات في مكانها..

العنوان: التعليمات - الاختصار ؛ الوصف 0: 00 11 00000001 - MVI A ، 1 ؛ انقل 1 لتسجيل A1: 01 10 11 000000 - MOV D ، A ؛ انقل السجل A للتسجيل D2: 10 11 10000000 - إضافة A ، D ؛ أضف السجل D للتسجيل A وتخزين النتيجة في السجل A3: 00 01 00 00000101 - MVI E ، 5 ؛ نقل 5 سجل E4: 10 01 11001 000 - SUB E ، A ؛ اطرح السجل A من السجل E وقم بتخزين النتيجة في السجل E5: 11 0 0 00000010 - JNZ 2 ؛ إذا كانت نتيجة الطرح ليست صفرية ، فارجع إلى العنوان 3 واستمر في العد 6: 11 1 0 00000000 - JMP 0 ؛ إذا كانت نتيجة الطرح صفرًا ، فارجع وابدأ من جديد

قبل نقل البرنامج إلى الذاكرة ، يجب تغيير رمز التعليمات الثنائية إلى نظام سداسي عشري لاستخدامه مع Logisim Hex Editor. أولاً ، قسّم التعليمات إلى ثلاث مجموعات كل منها 4 بتات. ثم قم بترجمة المجموعات إلى نظام سداسي عشري باستخدام الجدول الموجود في الخطوة 2. سيتم استخدام آخر ثلاثة أرقام سداسية عشرية فقط (بالخط العريض أدناه).

العنوان - التعليمات الثنائية - التعليمات الانقسام الثنائي - التعليمات (سداسية) 0 001100000001 0011 0000 0001 - 0x03011 011011000000 0110 1100 0000 - 0x06C02 101110000000 1011 1000 0000 - 0x0B803 000100000101 0001 0000 0101 - 0x01054 100111001000 1001 110000 111000000010 1110 0000 0000 - 0x0E00

حان الوقت لنقل البرنامج إلى ذاكرة BYOC-I للاختبار.

الخطوة 6: تحويل البرنامج إلى الذاكرة والاختبار

تحويل البرنامج إلى الذاكرة والاختبار
تحويل البرنامج إلى الذاكرة والاختبار
تحويل البرنامج إلى الذاكرة والاختبار
تحويل البرنامج إلى الذاكرة والاختبار

بالنظر إلى دائرة Logisim "الرئيسية" ، فإن مجموعة BYOC-I الموضحة هي رمز دائرة الكمبيوتر الفعلية المسماة "BYOC-I" في جزء المستكشف. لإدخال برنامج في ذاكرة BYOC-I:

  1. انقر بزر الماوس الأيمن فوق كتلة BYOC-I (تسمى "دائرة فرعية") وحدد (مرر الماوس فوقها وانقر فوقها الأيسر) "عرض BYOC-I".
  2. ستظهر دائرة BYOC-I في منطقة العمل. انقر بزر الماوس الأيمن على رمز "ذاكرة البرنامج" وحدد "تحرير المحتويات..".
  3. باستخدام Logisim Hex Editor ، أدخل الرمز السداسي العشري (غامق فقط) كما هو موضح أعلاه.

أنت الآن جاهز لتنفيذ البرنامج. ارجع إلى الدائرة الرئيسية بالنقر المزدوج على "BYOC-I" في جزء المستكشف. يجب أن تكون مدخلات التشغيل وإعادة التعيين "0" للبدء. باستخدام أداة Poke Tool ، قم أولاً بتغيير Reset إلى "1" ثم العودة إلى "0". هذا يجعل عنوان البداية 0x0000 ويعد دارة BYOC-I للتنفيذ. الآن كزة إدخال التشغيل إلى "1" وسيتم تنفيذ البرنامج. (ملاحظة: تحتاج بشكل أساسي إلى النقر فوق Control-K مرة واحدة لبدء تشغيل ساعة Logisim. هذه ميزة تسمح لك بإيقاف ساعة Logisim والتنقل عبر أحد البرامج من خلال النقر على Control-T بشكل متكرر. جربها في وقت ما!)

يمكن ضبط ساعة Logisim على نطاق واسع من الترددات. عند التنزيل ، تبلغ 8 هرتز (8 دورات في الثانية). بالطريقة التي تم بها تصميم الكمبيوتر BYOC-I ، تستغرق كل تعليمات أربع دورات على مدار الساعة لإكمالها. لذا ، لحساب سرعة BYOC-I ، اقسم تردد الساعة على 4. عند 8 هرتز ، تكون سرعتها 2 تعليمات في الثانية. يمكنك تغيير الساعة من خلال النقر على "محاكاة" على شريط الأدوات واختيار "تردد القراد". النطاق المحتمل هو 0.25 هرتز إلى 4100 هرتز. تم اختيار السرعة البطيئة عند 8 هرتز حتى تتمكن من مشاهدة العد في السجل A.

السرعة القصوى لمحاكاة BYOC-I (حوالي 1000 تعليمات في الثانية) بطيئة جدًا مقارنة بأجهزة الكمبيوتر الحديثة. إصدار العتاد الخاص بجهاز الكمبيوتر BYOC الموصوف في كتابي يتم تنفيذه بأكثر من 12 مليون تعليمات في الثانية!

آمل أن يكون هذا Instructable قد ألغى الغموض عن برمجة لغة الآلة وأعطاك نظرة ثاقبة حول كيفية عمل أجهزة الكمبيوتر في أبسط مستوياتها. لإثبات فهمك ، حاول ترميز البرنامجين أدناه.

  1. اكتب برنامجًا يبدأ من 5 ويعد تنازليًا حتى 0. (ANS. Count5to0.txt أدناه)
  2. بدءًا من 2 ، عد بمقدار 3 حتى يتجاوز الرقم 7. يمكنك إجراء القليل من العمليات الحسابية الذهنية ، والتحقق من الرقم 8 مع العلم أنه سيهبط هناك ثم إعادة التشغيل. اكتب برنامجك بطريقة أكثر عمومية بحيث تختبر حقًا ما إذا كان العدد "يتجاوز" رقمًا معينًا. تلميح: اكتشف ما يحدث عندما ينتج عن عملية طرح قيمة سالبة ، لنقل 8-9 = -1 على سبيل المثال. ثم جرب مع المنطقية AND لاختبار ما إذا كان MSB في رقم 8 بت هو "1". (ANS. ExceedsCount.txt)

هل يمكنك التفكير في المشاكل الصعبة الأخرى للكمبيوتر BYOC-I؟ نظرًا لقيودها ، ما الذي يمكنها فعله أكثر من ذلك؟ شارك تجاربك معي على [email protected]. إذا كنت مهتمًا بتشفير المعالجات الدقيقة ، فراجع موقع الويب الخاص بي www.whippleway.com.هناك أحمل تشفير الآلة إلى المعالجات الحديثة مثل سلسلة ATMEL Mega المستخدمة في Arduinos.

موصى به: