ما هو نظام الأرقام السداسي العشري في علوم الكمبيوتر. نظام الأرقام السداسي العشري الثنائي

يحتوي نظام الأرقام السداسي العشري على أبجدية تتكون من 16 رقمًا:

0، 1، 2، 3، 4، 5، 6، 7، 8، 9، أ، ب، ج، د، ه، و.

عند كتابة رقم في النظام السداسي العشري، يتم استخدام الحروف A، B، C، D، E، F على التوالي لكتابة الأرقام التي تشير إلى الأرقام 10، 11، 12. 13، 14. 15.

تحويل الأرقام من النظام الست عشري إلى النظام العشري

يمكنك تحويل أي رقم سداسي عشري إلى رقم عشري باستخدام الصيغة المعروفة بالفعل

أمثلة.

    AE07 16 =10∙16 3 +14∙16 2 +0∙16 1 +7∙16 0 =44551 10 .

    100 16 =1∙16 2 +0∙16 1 +0∙16 0 =256 10 .

    58 16 =5∙16 1 +8∙16 0 =.88 10 .

    2أ 16 =2∙16 1 +10∙16 0 =42 10.

يتم تحويل رقم من النظام العشري إلى النظام الست عشري بنفس طريقة التحويل إلى النظام الثنائي.

تحويل الأرقام من النظام الست عشري إلى الثنائي والعكس

يمكنك تحويل أي رقم سداسي عشري إلى ثنائي على النحو التالي. تتم كتابة كل رقم من الرقم السداسي العشري كرقم ثنائي مكون من أربعة أرقام - دفتر. بعد ذلك، يمكن التخلص من الأصفار الموجودة على اليسار.

2) 2أ= 0010 1010 2 = 101010 2 .

3) 58 16 = 0101 1000 2 = 1011000 2 .

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

أمثلة.

2. 101010 2 = 10 1010 2 = 2أ.

3. 1011000 2 = 101 1000 2 = 58 16 .

نظام الأرقام الثماني

يحتوي نظام الأرقام الثماني على أبجدية مكونة من 8 أرقام:

0, 1, 2, 3, 4, 5, 6, 7.

يتم إجراء تحويل رقم من النظام العشري إلى النظام الثماني والعودة بنفس طريقة التحويل من/إلى النظام الثنائي.

تحويل الأرقام من ثماني إلى ثنائي وبالعكس

تتم كتابة كل رقم من الرقم الثماني كرقم ثنائي مكون من ثلاثة أرقام - ثالوث.

أمثلة.

2563 8 = 010 101 110 011 2 =10101110011 2 .

1001101 2 = 001 001 101 2 = 115 8 .

المواد المنهجية للدرس المختبري رقم 1

موضوع الدرس المختبري: أنظمة الأعداد. معلومات القياس.

عدد الساعات: 2.

أمثلة مع الحلول

    الترجمة منص -نظام آري إلى نظام 10 آري.لنفترض أننا بحاجة إلى تحويل رقم في نظام أرقام معين إلى رقم عشري. للقيام بذلك، تحتاج إلى تمثيله في النموذج

11100110 2 = 1∙2 7 + 1∙2 6 + 1∙2 5 + 0∙2 4 + 0∙2 3 + 1∙2 2 + 1∙2 1 + 0∙2 0 = 128 + 64 + 32 + 4 + 2 = 230 10 .

2401 5 = 2∙5 3 + 4∙5 2 + 0∙5 1 + 1∙5 0 = 250 + 100 + 0 + 1 = 351.

    التحويل من نظام 10 أرقام إلىص -إشنايا.

2.1 98 10 ← × 2.

نقسم العدد على 2. ثم نقسم الناتج غير الكامل على 2. ونستمر حتى يصبح الناتج غير الكامل أقل من 2، أي. يساوي 1.

    98: 2 = 49. الباقي - 0 .

    49: 2 = 24. الباقي - 1 .

    24: 2 = 12. الباقي - 0 .

    12: 2 = 6. الباقي - 0 .

    6: 2 = 3. الباقي - 0 .

    3: 2 = 1 . بقية - 1 .

وبما أن القسمة الجزئية الأخيرة هي 1، فقد انتهت العملية. نكتب جميع الباقي من الأسفل إلى الأعلى، بدءًا من آخر حاصل قسمة غير مكتمل، ونحصل على الرقم 1100010. إذن 98 10 = 1100010 2.

2.2 2391 10 ← × 16.

اقسم الرقم على 16. ثم اقسم الناتج الجزئي على 16. استمر حتى يصبح الناتج الجزئي أقل من 16.

    2391: 16 = 149. الباقي - 7 .

    149: 16 = 9 . بقية - 5 .

وبما أن القسمة الجزئية الأخيرة (9) أقل من 16، فقد انتهت العملية. نكتب، بدءًا من آخر قسمة غير مكتملة، كل الباقي من الأسفل إلى الأعلى ونحصل على الرقم 957. إذن 2391 10 = 957 16.

2.3 12165 10 → × 2.

إذا قمت بالتحويل عن طريق القسمة إلى النظام الثنائي، فستحصل على عملية مرهقة إلى حد ما. يمكنك أولاً تحويل الرقم إلى رقم ثماني، ثم استبدال الأرقام الثمانية من اليمين إلى اليسار بالثلاثيات.

12165 10 = 27605 8 = 010 111 110 000 101 = 10111110000101.

    تحديد أساس نظام الأرقامص .

كتب أحد الصبية عن نفسه: «لدي 24 إصبعًا، 5 في كل يد، و12 في قدمي». كيف يمكن أن يكون هذا؟

حل. من الضروري تحديد أساس نظام الأرقام ص. وبما أننا نعلم أن هناك 10 أصابع فقط، 10، ثم 12 ص =1∙ص+2 = 10 10 . ومن هنا نحصل على المعادلة ص + 2 = 10  ص= 8. إذًا كان الصبي يقصد الأرقام في النظام الثماني. في الواقع، هناك 24 8 = 2∙8+4 = 20 10 أصابع، و12 8 = 1∙8+2 = 10 10 أصابع.

نظام الأرقام السداسي العشري(المعروف أيضًا باسم الكود السداسي العشري) هو نظام أرقام موضعية بقاعدة عددية 16. المصطلح سداسي عشري (يُنطق سداسي عشري، وهو اختصار للغة الإنجليزية السداسية العشرية) يستخدم أيضًا في بعض الأحيان في الأدب. تُستخدم أرقام نظام الأرقام هذا عادةً في الأرقام العربية من 0 إلى 9، بالإضافة إلى الأحرف الأولى من الأبجدية اللاتينية A-F. تتوافق الحروف مع القيم العشرية التالية:

  • * أ -10؛
  • *ب — 11؛
  • *ج — 12؛
  • * د -13؛
  • * ه - 14؛
  • * ف - 15.

وبالتالي، فإن عشرة أرقام عربية، مقترنة بستة أحرف لاتينية، تشكل الأرقام الستة عشر للنظام.

بالمناسبة، يمكنك على موقعنا تحويل أي نص إلى رمز عشري أو سداسي عشري أو ثنائي باستخدام حاسبة الرموز عبر الإنترنت.

طلب. رمز سداسي عشرييستخدم على نطاق واسع في البرمجة منخفضة المستوى وكذلك في المستندات المرجعية للكمبيوتر المختلفة. يتم تبرير شعبية النظام من خلال الحلول المعمارية لأجهزة الكمبيوتر الحديثة: فهي تحتوي على بايت (يتكون من ثمانية بتات) كحد أدنى لوحدة المعلومات - ويتم كتابة قيمة البايت بسهولة باستخدام رقمين سداسي عشري. يمكن أن تتراوح قيمة البايت من #00 إلى #FF (من 0 إلى 255 بالتدوين العشري) - وبعبارة أخرى، باستخدام رمز سداسي عشري، يمكنك كتابة أي حالة للبايت، في حين لا توجد أرقام "إضافية" غير مستخدمة في التسجيل.

مشفرة يونيكوديتم استخدام أربعة أرقام سداسية عشرية لتسجيل رقم الحرف. غالبًا ما يستخدم تدوين ألوان RGB (الأحمر والأخضر والأزرق) رمزًا سداسيًا عشريًا (على سبيل المثال، #FF0000 هو تدوين لون أحمر ساطع).

طريقة لكتابة الكود الست عشري.

طريقة الكتابة الرياضية. في التدوين الرياضي، تتم كتابة قاعدة النظام في شكل عشري كحرف منخفض على يمين الرقم. يمكن كتابة التدوين العشري للرقم 3032 بالشكل 3032 10، وفي النظام السداسي العشري سيكون لهذا الرقم الترميز BD8 16.

في بناء جملة لغات البرمجة. يحدد بناء جملة لغات البرمجة المختلفة تنسيق كتابة الرقم باستخدامه بشكل مختلف رمز سداسي عشري:

* يستخدم تركيب بعض أصناف لغة التجميع الحرف اللاتيني "h" الذي يوضع على يمين الرقم، على سبيل المثال: 20Dh. إذا كان الرقم يبدأ بحرف لاتيني، فيوضع أمامه صفر، على سبيل المثال: 0A0Bh. يتم ذلك من أجل تمييز القيم باستخدام الثوابت عن الثوابت. رمز سداسي عشري;

* أنواع أخرى من المجمعات، بالإضافة إلى باسكال (ومتغيراتها مثل دلفي) وبعض اللهجات الأساسية، تستخدم البادئة "$": $A15؛

* في لغة ترميز HTML، وكذلك في ملفات CSS المتتالية، يتم استخدام البادئة "#" لتحديد لون بتنسيق RGB مع تدوين سداسي عشري: #00DC00.

كيفية تحويل الكود الست عشري إلى نظام آخر؟

التحويل من النظام الست عشري إلى النظام العشري.لإجراء عملية تحويل من النظام السداسي العشري إلى النظام العشري، تحتاج إلى تمثيل الرقم الأصلي كمجموع منتجات الأرقام في أرقام الرقم السداسي العشري وقوة القاعدة.

ثنائي SS

عرافة سس

على سبيل المثال، تحتاج إلى ترجمة الرقم السداسي العشري A14: فهو يتكون من ثلاثة أرقام. وباستخدام القاعدة نكتبها كمجموع قوى بأساس 16:

أ14 16 = 10.16 2 + 1.16 1 + 4.16 0 = 10.256 + 1.16 + 4.1 = 2560 + 16 + 4 = 2580 10

تحويل الأرقام من النظام الثنائي إلى النظام الست عشري والعكس.

يتم استخدام جدول دفتر الملاحظات للترجمة. لتحويل رقم من النظام الثنائي إلى النظام العشري، تحتاج إلى تقسيمه إلى رباعيات منفصلة من اليمين إلى اليسار، ثم باستخدام الجدول، استبدل كل رباعية بالرقم السداسي العشري المقابل. علاوة على ذلك، إذا لم يكن عدد الأرقام من مضاعفات الأربعة، فمن الضروري إضافة عدد الأصفار المقابل إلى يمين الرقم بحيث يصبح العدد الإجمالي للأرقام الثنائية من مضاعفات الأربعة.

جدول الدفاتر للترجمة.

للتحويل من النظام السداسي العشري إلى النظام الثنائي، يلزمك إجراء العملية العكسية: استبدل كل رقم برباعي من الجدول.

ثنائي SS

أوكتال إس إس

مثال التحويل من الست عشري إلى الثنائي: A5E 16 = 1010 0101 1110 = 101001011110 2

مثال التحويل من ثنائي إلى سداسي عشري: 111100111 2 = 0001 1110 0111 = 1E7 16

في هذا المثال، لم يكن عدد الأرقام في الرقم الثنائي الأصلي أربعة (9)، لذلك تمت إضافة الأصفار البادئة ليصبح إجمالي عدد الأرقام 12.

الترجمة الآلية. يمكن إجراء تحويل سريع من نظام الأرقام السداسي العشري إلى أحد الأنظمة الثلاثة الشائعة (الثنائي والثماني والعشري)، بالإضافة إلى التحويل العكسي، باستخدام الآلة الحاسبة القياسية المضمنة في نظام التشغيل Windows. افتح الآلة الحاسبة، وحدد عرض -> مبرمج من القائمة. في هذا الوضع، يمكنك ضبط نظام الأرقام المستخدم حاليًا (انظر القائمة الموجودة على اليسار: Hex، Dec، Oct، Bin). في هذه الحالة، يؤدي تغيير نظام الأرقام الحالي إلى إنشاء ترجمة تلقائيًا.

لكتابة البرامج في التجميع، عليك أن تفهم نظام الأرقام السداسي العشري. لا يوجد شيء معقد حول هذا الموضوع. نحن نستخدم النظام العشري في الحياة. أنا متأكد من أنكم جميعًا تعرفون ذلك، لذا سأحاول شرح النظام السداسي العشري باستخدام القياس مع النظام العشري.

لذا، في النظام العشري، إذا أضفنا صفرًا إلى أي رقم على اليمين، فسيزيد هذا الرقم بمقدار 10 مرات. على سبيل المثال: 1 × 10 = 10؛ 10 × 10 = 100؛ 100 × 10 = 1000، إلخ. نستخدم في هذا النظام الأرقام من 0 إلى 9، أي. عشرة أرقام مختلفة (في الواقع، هذا هو سبب تسميتها بالرقم العشري).

في النظام السداسي العشري، نستخدم ستة عشر "رقمًا". لقد كتبت كلمة "أرقام" على وجه التحديد بين علامتي تنصيص، لأن... لا يستخدم الأرقام فقط. وحقا كيف يمكن أن يكون ذلك؟ اسمحوا لي أن أشرح: من 0 إلى 9 نحسب بنفس الطريقة كما في النظام العشري، ولكن بعد ذلك سيكون الأمر كما يلي: A، B، C، D، E، F. الرقم F ليس صعبا العد، سيكون مساوياً لـ 15 في النظام العشري (انظر الجدول 1).

عدد عشري

رقم سداسي عشري

الجدول 1. الأنظمة العشرية والست عشرية.

وبالتالي، إذا أضفنا صفراً إلى يمين أي رقم في النظام السداسي العشري، فإن هذا الرقم سيزداد بمقدار16 مرة واحدة.

مثال 1: 1 × 16 = 10؛ 10 × 16 = 100؛ 100 × 16 = 1000، إلخ.

هل تمكنت من التمييز بين الأرقام السداسية العشرية والأرقام العشرية في المثال 1؟ ومن هذه السلسلة: 10، 12، 45، 64، 12، 8، 19؟ يمكن أن تكون هذه إما سداسي عشري أو عشري. لتجنب الارتباك ولكي يتمكن الكمبيوتر من التمييز بوضوح بين رقم وآخر، من المعتاد في المجمّع وضع الرمز h أو H بعد الرقم السداسي العشري ( H هو اختصار للغة الإنجليزية. السداسي عشري (السداسي عشري). للإيجاز، يتم استدعاؤه أحيانًا ببساطة عرافة ) . ولا تضع شيئا بعد العلامة العشرية. لأن الأرقام من 0 إلى 9 في كلا النظامين لها نفس المعاني، فالأرقام المكتوبة 5 و 5h هي نفسها.

الذي - التي. المثال 1 (انظر أعلاه) سيكون من الأصح كتابته على النحو التالي: 1 x 16 = 10h؛ 10 س × 16 = 100 س؛ 100 س × 16 = 1000 س. أو مثل هذا: 1س × 10س = 10س؛ 10 س 10 س = 100 س؛ 100 س × 10 س = 1000 س.

سننظر في سبب الحاجة إلى النظام السداسي العشري في الإصدارات اللاحقة. في الوقت الحالي، بالنسبة لبرنامج المثال الخاص بنا، والذي سيتم مناقشته أدناه، نحتاج إلى معرفة وجود أرقام سداسية عشرية.

لذلك، دعونا نلخص. يتكون نظام الأرقام السداسي العشري من 10 أرقام (من 0 إلى 9) و6 أحرف من الأبجدية اللاتينية (A، B، C، D، E، F). إذا أضفنا صفرًا إلى يمين أي رقم في النظام السداسي العشري، فإن هذا الرقم سيزداد بمقدار16 مرة واحدة. من المهم جدًا فهم هذا الموضوعلأننا سنستخدمه باستمرار عند كتابة البرامج.

الآن القليل عن كيفية بناء الأمثلة في التجميع. ليس من المناسب تماما تقديمها بتنسيق HTML، لذلك سيكون هناك أولا رمز البرنامج نفسه مع خطوط مرقمة، وبعد ذلك مباشرة سيكون هناك تفسيرات وملاحظات.

مثل هذا:

خطوط كود البرنامج
(1) حركة آه،9

التفسيرات:

في السطر (1) نفعل هذا، وفي السطر (15) نفعل ذلك.

طلب ضخم: لا تقم بنسخ البرامج من الصفحة إلى الحافظة ثم لصقها في المفكرة (أو في أي مكان آخر)! أعد كتابتها يدويًا في محرر النصوص. إذا كان لديك طابعة، فحدد البرنامج، وطباعة الجزء المحدد، ثم قم بنقله إلى المحرر من الورق. يجب كتابة جميع الأمثلة بنفسك!وهذا سوف يسرع حفظ المشغلين.

وأكثر من ذلك. لا يوجد فرق بين الأحرف الصغيرة والأحرف الكبيرة في المجمّع. سجلات النموذج:

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

لذلك دعونا ننتقل إلى برنامجنا الأول:

(1) قطاع CSEG

(2) المنظمة 100 ساعة

(4) البدء:

(6) موف آه،9

(7) mov dx، رسالة إزاحة

(8) كثافة العمليات 21H

(10) كثافة العمليات 20H

(11)

(12) رسالة db "مرحبًا بالعالم!$"

(13) ينتهي CSEG

(14) نهاية البداية

من أجل شرح جميع العوامل في هذا المثال، سنحتاج إلى عدة إصدارات. ولذلك، فإننا ببساطة سوف نحذف وصف بعض الأوامر في هذه المرحلة. فقط افترض أن هذا هو ما ينبغي أن يكون. سننظر في هؤلاء المشغلين بالتفصيل في المستقبل القريب جدًا. لذا، فإن الأسطر المرقمة (1) و(2) و(13) تتجاهلها ببساطة.

تبقى الأسطر (3)، (5)، (9)، (11) فارغة. ويتم ذلك من أجل الوضوح. سوف يقوم المجمّع بحذفها ببساطة.

الآن دعنا ننتقل إلى النظر في العوامل المتبقية. يبدأ رمز البرنامج بالسطر (4). هذه علامة تخبر المجمّع ببداية الكود. السطر (14) يحتوي على عوامل نهاية البداية (ابدأ باللغة الإنجليزية يبدأ؛ نهاية نهاية). هذه هي نهاية البرنامج. بشكل عام، بدلا من الكلمةيبدأ كان من الممكن استخدام شيء آخر. على سبيل المثال،يبدأ:. في هذه الحالة، سيتعين علينا إنهاء البرنامجبداية النهاية (14).

الأسطر (6) (8) تعرض الرسالة أهلاً بالعالم!. هنا سيتعين علينا أن نتحدث بإيجاز عن سجلات المعالج (سننظر في هذا الموضوع بمزيد من التفصيل في العدد القادم).

سجل المعالج هو ذاكرة مخصصة لتخزين رقم ما.

على سبيل المثال:

إذا أردنا جمع رقمين، ففي الرياضيات نكتبه هكذا:

أ، ب، ج هذه نوع من السجلات (إذا تحدثنا عن جهاز كمبيوتر) يمكن تخزين بعض البيانات فيها. يمكن قراءة A=5 على النحو التالي: قم بتعيين الرقم 5 .

لتعيين قيمة تسجيل، يوجد عامل نقل في المجمع (من تحميل النقل باللغة الإنجليزية). يجب قراءة السطر (6) على النحو التالي: التحميل في السجل آه.رقم 9 (وبعبارة أخرى، نحن نخصص آه.رقم 9).أدناه سننظر في سبب ضرورة ذلك.

في السطر (7) نقوم بالتحميل في السجلدي اكس عنوان الرسالة للإخراج (في هذا المثال سيكون السلسلةأهلاً بالعالم!$).

سيتم تغطية المقاطعات بالتفصيل في الإصدارات اللاحقة. وهنا سأقول بضع كلمات.

مقاطعة مس-دوس إنه نوع من الروتين الفرعي (الجزء (MS-DOS)والذي يتواجد بشكل دائم في الذاكرة ويمكن استدعاؤه في أي وقت من أي برنامج.

دعونا نفكر في ما ورد أعلاه باستخدام مثال (ملاحظات بخط صغير):

برنامج لإضافة رقمين

الصفحة الرئيسيةالبرامج

أ = 5 نقوم بإدخال القيمة 5 في المتغير A

ب = 8 في المتغير B القيمة 8

استدعاء الإجراءات الفرعية

الآن C يساوي 13

أ = 10 نفس الشيء، فقط أرقام مختلفة

ب = 25

استدعاء الإجراءات الفرعية

الآن C يساوي 35

نهاية البرنامج

إضافة روتين فرعي

ج=أ+ب

العودة من الروتين الفرعي نعود إلى المكان الذي اتصلنا منه

EndSubroutine

في هذا المثال، قمنا باستدعاء الروتين الفرعي مرتين إضافة، والذي أضاف رقمين تم تمريرهما إليه في المتغيراتأ و ب . يتم وضع النتيجة في المتغير C. عندما يتم استدعاء روتين فرعي، يتذكر الكمبيوتر المكان الذي تم استدعاؤه منه، وبعد ذلك، عند انتهاء تشغيل الروتين الفرعي، يعود الكمبيوتر إلى المكان الذي تم استدعاؤه منه. الذي - التي. يمكنك استدعاء الإجراءات الفرعية لعدد غير محدد من المرات من أي مكان.

عند تنفيذ السطر (8) من برنامج التجميع، نقوم باستدعاء روتين فرعي (في هذه الحالة يسمى المقاطعة)، والذي يعرض السطر على الشاشة. ولهذا الغرض، نقوم في الواقع بوضع القيم اللازمة في السجلات. يتم تنفيذ كافة الأعمال الضرورية (إخراج خط، تحريك المؤشر) بواسطة الروتين الفرعي. يمكن قراءة هذا السطر على النحو التالي: استدعاء المقاطعة الحادية والعشرين (إنت من اللغة الإنجليزية يقاطع المقاطعة). يرجى ملاحظة أنه بعد الرقم 21 يوجد حرفح . وهذا، كما نعلم بالفعل، هو رقم سداسي عشري (33 بالنظام العشري). وبطبيعة الحال، لا شيء يمنعنا من استبدال الخطكثافة العمليات 21H إلى كثافة العمليات 33. سوف يعمل البرنامج بشكل صحيح. إنها مجرد ممارسة شائعة في المجمع للإشارة إلى رقم المقاطعة بالنظام الست عشري.

في السطر (10)، كما قد تكون خمنت، نستدعي المقاطعة 20ح . لاستدعاء هذه المقاطعة، لا تحتاج إلى تحديد أي قيم في السجلات. ينفذ مهمة واحدة فقط: الخروج من البرنامج (الخروج إلى DOS). نتيجة لتنفيذ المقاطعة 20h، سيعود البرنامج إلى حيث تم إطلاقه (تم التحميل، الاستدعاء). على سبيل المثال، فينورتون كوماندر أو DOS Navigator.

السطر (12) يحتوي على الرسالة المراد إخراجها. أول كلمة (رسالة الرسالة) عنوان الرسالة. يمكن أن يكون أي شيء (على سبيل المثال،فوضى أو سلسلة، وما إلى ذلك). عن انتبه إلى السطر (7) الذي نقوم فيه بالتحميل في السجلدي اكس عنوان رسالتنا.

يمكننا إنشاء خط آخر، والذي سوف نسميهالفوضى2. ثم ابتداء من السطر (9) أدخل الأوامر التالية:

(10) موف دكس، إزاحة الفوضى 2

(13) رسالة db "مرحبًا بالعالم!$"

(14) Mess2 ديسيبل "إنه أنا! $"

وإعادة تجميع برنامجنا. آمل أن تتمكن من تخمين ما سيحدث

انتبه إلى الحرف الأخير في السطورالرسالة والفوضى2 - $. ويشير إلى نهاية السطر. إذا قمنا بإزالته، ثم 21ح ستستمر المقاطعة في الإخراج حتى تواجه حرفًا في مكان ما في الذاكرة $. على الشاشة سنرىقمامة .

إذا كان لديك مصحح أخطاء، يمكنك أن ترى كيف سيعمل برنامجنا.

وكان الغرض من هذه المسألة عدم الفهم بالتفصيل مع كل مشغل. وهذا مستحيل، لأن ليس لديك المعرفة الكافية حتى الآن. أعتقد أنه بعد 3-4 إصدارات ستفهم مبدأ وبنية برنامج التجميع. ربما بدت لك لغة التجميع معقدة للغاية، لكن صدقوني، هذا للوهلة الأولى.

نظام الأرقام السداسي العشري. برنامجنا الأول.

لكتابة البرامج في التجميع، عليك أن تفهم نظام الأرقام السداسي العشري. لا يوجد شيء معقد حول هذا الموضوع. نحن نستخدم النظام العشري في الحياة. أنا متأكد من أنكم جميعًا تعرفون ذلك، لذا سأحاول شرح النظام السداسي العشري باستخدام القياس مع النظام العشري.

لذا، في النظام العشري، إذا أضفنا صفرًا إلى أي رقم على اليمين، فسيزيد هذا الرقم بمقدار 10 مرات. على سبيل المثال: 1 × 10 = 10؛ 10 × 10 = 100؛ 100 × 10 = 1000، إلخ. نستخدم في هذا النظام الأرقام من 0 إلى 9، أي. عشرة أرقام مختلفة (في الواقع، هذا هو سبب تسميتها بالرقم العشري).

في النظام السداسي العشري، نستخدم ستة عشر "رقمًا". لقد كتبت كلمة "أرقام" على وجه التحديد بين علامتي تنصيص، لأن... لا يستخدم الأرقام فقط. وحقا كيف يمكن أن يكون ذلك؟ اسمحوا لي أن أشرح: من 0 إلى 9 نحسب بنفس الطريقة كما في النظام العشري، ولكن بعد ذلك سيكون الأمر كما يلي: A، B، C، D، E، F. الرقم F ليس صعبا العد، سيكون مساوياً لـ 15 في النظام العشري (انظر الجدول 1).

عدد عشري

رقم سداسي عشري

الجدول 1. الأنظمة العشرية والست عشرية.

وبالتالي، إذا أضفنا صفراً إلى يمين أي رقم في النظام السداسي العشري، فإن هذا الرقم سيزداد بمقدار16 مرة واحدة.

مثال 1: 1 × 16 = 10؛ 10 × 16 = 100؛ 100 × 16 = 1000، إلخ.

هل تمكنت من التمييز بين الأرقام السداسية العشرية والأرقام العشرية في المثال 1؟ ومن هذه السلسلة: 10، 12، 45، 64، 12، 8، 19؟ يمكن أن تكون هذه إما سداسي عشري أو عشري. لتجنب الارتباك ولكي يتمكن الكمبيوتر من التمييز بوضوح بين رقم وآخر، من المعتاد في المجمّع وضع الرمز h أو H بعد الرقم السداسي العشري ( H هو اختصار للغة الإنجليزية. السداسي عشري (السداسي عشري). للإيجاز، يتم استدعاؤه أحيانًا ببساطة عرافة ) . ولا تضع شيئا بعد العلامة العشرية. لأن الأرقام من 0 إلى 9 في كلا النظامين لها نفس المعاني، فالأرقام المكتوبة 5 و 5h هي نفسها.

الذي - التي. المثال 1 (انظر أعلاه) سيكون من الأصح كتابته على النحو التالي: 1 x 16 = 10h؛ 10 س × 16 = 100 س؛ 100 س × 16 = 1000 س. أو مثل هذا: 1س × 10س = 10س؛ 10 س 10 س = 100 س؛ 100 س × 10 س = 1000 س.

سننظر في سبب الحاجة إلى النظام السداسي العشري في الإصدارات اللاحقة. في الوقت الحالي، بالنسبة لبرنامج المثال الخاص بنا، والذي سيتم مناقشته أدناه، نحتاج إلى معرفة وجود أرقام سداسية عشرية.

لذلك، دعونا نلخص. يتكون نظام الأرقام السداسي العشري من 10 أرقام (من 0 إلى 9) و6 أحرف من الأبجدية اللاتينية (A، B، C، D، E، F). إذا أضفنا صفرًا إلى يمين أي رقم في النظام السداسي العشري، فإن هذا الرقم سيزداد بمقدار16 مرة واحدة. من المهم جدًا فهم هذا الموضوعلأننا سنستخدمه باستمرار عند كتابة البرامج.

الآن القليل عن كيفية بناء الأمثلة في التجميع. ليس من المناسب تماما تقديمها بتنسيق HTML، لذلك سيكون هناك أولا رمز البرنامج نفسه مع خطوط مرقمة، وبعد ذلك مباشرة سيكون هناك تفسيرات وملاحظات.

مثل هذا:

خطوط كود البرنامج
(1) حركة آه،9

التفسيرات:

في السطر (1) نفعل هذا، وفي السطر (15) نفعل ذلك.

طلب ضخم: لا تقم بنسخ البرامج من الصفحة إلى الحافظة ثم لصقها في المفكرة (أو في أي مكان آخر)! أعد كتابتها يدويًا في محرر النصوص. إذا كان لديك طابعة، فحدد البرنامج، وطباعة الجزء المحدد، ثم قم بنقله إلى المحرر من الورق. يجب كتابة جميع الأمثلة بنفسك!وهذا سوف يسرع حفظ المشغلين.

وأكثر من ذلك. لا يوجد فرق بين الأحرف الصغيرة والأحرف الكبيرة في المجمّع. سجلات النموذج:

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

لذلك دعونا ننتقل إلى برنامجنا الأول:

(1) قطاع CSEG

(2) المنظمة 100 ساعة

(4) البدء:

(6) موف آه،9

(7) mov dx، رسالة إزاحة

(8) كثافة العمليات 21H

(10) كثافة العمليات 20H

(11)

(12) رسالة db "مرحبًا بالعالم!$"

(13) ينتهي CSEG

(14) نهاية البداية

من أجل شرح جميع العوامل في هذا المثال، سنحتاج إلى عدة إصدارات. ولذلك، فإننا ببساطة سوف نحذف وصف بعض الأوامر في هذه المرحلة. فقط افترض أن هذا هو ما ينبغي أن يكون. سننظر في هؤلاء المشغلين بالتفصيل في المستقبل القريب جدًا. لذا، فإن الأسطر المرقمة (1) و(2) و(13) تتجاهلها ببساطة.

تبقى الأسطر (3)، (5)، (9)، (11) فارغة. ويتم ذلك من أجل الوضوح. سوف يقوم المجمّع بحذفها ببساطة.

الآن دعنا ننتقل إلى النظر في العوامل المتبقية. يبدأ رمز البرنامج بالسطر (4). هذه علامة تخبر المجمّع ببداية الكود. السطر (14) يحتوي على عوامل نهاية البداية (ابدأ باللغة الإنجليزية يبدأ؛ نهاية نهاية). هذه هي نهاية البرنامج. بشكل عام، بدلا من الكلمةيبدأ كان من الممكن استخدام شيء آخر. على سبيل المثال،يبدأ:. في هذه الحالة، سيتعين علينا إنهاء البرنامجبداية النهاية (14).

الأسطر (6) (8) تعرض الرسالة أهلاً بالعالم!. هنا سيتعين علينا أن نتحدث بإيجاز عن سجلات المعالج (سننظر في هذا الموضوع بمزيد من التفصيل في العدد القادم).

سجل المعالج هو ذاكرة مخصصة لتخزين رقم ما.

على سبيل المثال:

إذا أردنا جمع رقمين، ففي الرياضيات نكتبه هكذا:

أ، ب، ج هذه نوع من السجلات (إذا تحدثنا عن جهاز كمبيوتر) يمكن تخزين بعض البيانات فيها. يمكن قراءة A=5 على النحو التالي: قم بتعيين الرقم 5 .

لتعيين قيمة تسجيل، يوجد عامل نقل في المجمع (من تحميل النقل باللغة الإنجليزية). يجب قراءة السطر (6) على النحو التالي: التحميل في السجل آه.رقم 9 (وبعبارة أخرى، نحن نخصص آه.رقم 9).أدناه سننظر في سبب ضرورة ذلك.

في السطر (7) نقوم بالتحميل في السجلدي اكس عنوان الرسالة للإخراج (في هذا المثال سيكون السلسلةأهلاً بالعالم!$).

سيتم تغطية المقاطعات بالتفصيل في الإصدارات اللاحقة. وهنا سأقول بضع كلمات.

مقاطعة مس-دوس إنه نوع من الروتين الفرعي (الجزء (MS-DOS)والذي يتواجد بشكل دائم في الذاكرة ويمكن استدعاؤه في أي وقت من أي برنامج.

دعونا نفكر في ما ورد أعلاه باستخدام مثال (ملاحظات بخط صغير):

برنامج لإضافة رقمين

الصفحة الرئيسيةالبرامج

أ = 5 نقوم بإدخال القيمة 5 في المتغير A

ب = 8 في المتغير B القيمة 8

استدعاء الإجراءات الفرعية

الآن C يساوي 13

أ = 10 نفس الشيء، فقط أرقام مختلفة

ب = 25

استدعاء الإجراءات الفرعية

الآن C يساوي 35

نهاية البرنامج

إضافة روتين فرعي

ج=أ+ب

العودة من الروتين الفرعي نعود إلى المكان الذي اتصلنا منه

EndSubroutine

في هذا المثال، قمنا باستدعاء الروتين الفرعي مرتين إضافة، والذي أضاف رقمين تم تمريرهما إليه في المتغيراتأ و ب . يتم وضع النتيجة في المتغير C. عندما يتم استدعاء روتين فرعي، يتذكر الكمبيوتر المكان الذي تم استدعاؤه منه، وبعد ذلك، عند انتهاء تشغيل الروتين الفرعي، يعود الكمبيوتر إلى المكان الذي تم استدعاؤه منه. الذي - التي. يمكنك استدعاء الإجراءات الفرعية لعدد غير محدد من المرات من أي مكان.

عند تنفيذ السطر (8) من برنامج التجميع، نقوم باستدعاء روتين فرعي (في هذه الحالة يسمى المقاطعة)، والذي يعرض السطر على الشاشة. ولهذا الغرض، نقوم في الواقع بوضع القيم اللازمة في السجلات. يتم تنفيذ كافة الأعمال الضرورية (إخراج خط، تحريك المؤشر) بواسطة الروتين الفرعي. يمكن قراءة هذا السطر على النحو التالي: استدعاء المقاطعة الحادية والعشرين (إنت من اللغة الإنجليزية يقاطع المقاطعة). يرجى ملاحظة أنه بعد الرقم 21 يوجد حرفح . وهذا، كما نعلم بالفعل، هو رقم سداسي عشري (33 بالنظام العشري). وبطبيعة الحال، لا شيء يمنعنا من استبدال الخطكثافة العمليات 21H إلى كثافة العمليات 33. سوف يعمل البرنامج بشكل صحيح. إنها مجرد ممارسة شائعة في المجمع للإشارة إلى رقم المقاطعة بالنظام الست عشري.

في السطر (10)، كما قد تكون خمنت، نستدعي المقاطعة 20ح . لاستدعاء هذه المقاطعة، لا تحتاج إلى تحديد أي قيم في السجلات. ينفذ مهمة واحدة فقط: الخروج من البرنامج (الخروج إلى DOS). نتيجة لتنفيذ المقاطعة 20h، سيعود البرنامج إلى حيث تم إطلاقه (تم التحميل، الاستدعاء). على سبيل المثال، فينورتون كوماندر أو DOS Navigator.

السطر (12) يحتوي على الرسالة المراد إخراجها. أول كلمة (رسالة الرسالة) عنوان الرسالة. يمكن أن يكون أي شيء (على سبيل المثال،فوضى أو سلسلة، وما إلى ذلك). عن انتبه إلى السطر (7) الذي نقوم فيه بالتحميل في السجلدي اكس عنوان رسالتنا.

يمكننا إنشاء خط آخر، والذي سوف نسميهالفوضى2. ثم ابتداء من السطر (9) أدخل الأوامر التالية:

(10) موف دكس، إزاحة الفوضى 2

(13) رسالة db "مرحبًا بالعالم!$"

(14) Mess2 ديسيبل "إنه أنا! $"

وإعادة تجميع برنامجنا. آمل أن تتمكن من تخمين ما سيحدث

انتبه إلى الحرف الأخير في السطورالرسالة والفوضى2 - $. ويشير إلى نهاية السطر. إذا قمنا بإزالته، ثم 21ح ستستمر المقاطعة في الإخراج حتى تواجه حرفًا في مكان ما في الذاكرة $. على الشاشة سنرىقمامة .

إذا كان لديك مصحح أخطاء، يمكنك أن ترى كيف سيعمل برنامجنا.

وكان الغرض من هذه المسألة عدم الفهم بالتفصيل مع كل مشغل. وهذا مستحيل، لأن ليس لديك المعرفة الكافية حتى الآن. أعتقد أنه بعد 3-4 إصدارات ستفهم مبدأ وبنية برنامج التجميع. ربما بدت لك لغة التجميع معقدة للغاية، لكن صدقوني، هذا للوهلة الأولى.

تدوين سداسي عشري ("ست عشري")- طريقة ملائمة لتمثيل القيم الثنائية. كما أن نظام الأرقام العشري له أساس من عشرة ونظام الأرقام الثنائية له أساس من اثنين، فإن نظام الأرقام السداسي العشري له أساس من ستة عشر.

يستخدم نظام الأرقام الأساسي 16 الأرقام من 0 إلى 9 والأحرف من A إلى F. ويوضح الشكل القيم العشرية والثنائية والست عشرية المكافئة للأرقام الثنائية من 0000 إلى 1111. نجد أنه من الأسهل التعبير عن القيمة كواحدة رقم سداسي عشري بدلاً من أربع بتات

فهم البايتات

نظرًا لأن 8 بتات (بايت) هي التجميع الثنائي القياسي، فيمكن تمثيل الأرقام الثنائية من 00000000 إلى 11111111 بالتدوين السداسي العشري كالأرقام من 00 إلى FF. يتم دائمًا عرض الأصفار البادئة لإكمال تمثيل 8 بت. على سبيل المثال، القيمة الثنائية 0000 1010 بالنظام الست عشري ستكون 0A.

تمثيل القيم الست عشرية

يرجى الملاحظة:ومن المهم التمييز بين القيم السداسية العشرية والأحرف العشرية للأحرف من 0 إلى 9، كما هو موضح في الشكل.

عادةً ما يتم تمثيل القيم السداسية العشرية في النص بقيمة مسبوقة بـ 0x (مثل 0x73)، أو باستخدام رمز منخفض 16. وفي حالات أقل شيوعًا، قد يتبعها الحرف H، مثل 73H. ومع ذلك، نظرًا لعدم التعرف على النص المنخفض في سطر الأوامر أو في بيئات البرمجة، فإنه يسبقه "0x" (صفر X) في التمثيل الفني للأرقام السداسية العشرية. لذلك، سيتم عرض الأمثلة أعلاه كـ 0x0A و0x73 على التوالي.

يتم استخدام التدوين السداسي العشري لتمثيل عناوين Ethernet MAC وعناوين IP الإصدار 6.

التحويلات السداسية العشرية

يعد تحويل الأرقام بين القيم العشرية والست عشرية أمرًا بسيطًا، ولكن القسمة أو الضرب بسرعة على 16 ليس أمرًا مناسبًا دائمًا. إذا كانت مثل هذه التحويلات ضرورية، فمن الأسهل عادةً تحويل القيمة العشرية أو السداسية العشرية إلى ثنائية، ثم تحويل القيمة الثنائية إلى قيمة عشرية أو سداسية عشرية، اعتمادًا على ما تريد الحصول عليه.

مع الممارسة، من الممكن التعرف على أنماط البت الثنائية التي تتوافق مع القيم العشرية والست عشرية. يوضح الشكل هذه الأنماط لبعض قيم 8 بت.