15-05-2024, 04:29 PM
رحلة في عالم الأسمبلي
https://www.youtube.com/playlist?list=PL..._swadKSPga
# الفصل 0 : تمهيد # الفصل 1 : المفاهيم الأساسية في لغة الassembly
- 1.0 مقدمة
- 1.1 مرحبًا بك في لغة الAssembly
- 1.2 تطبيقات لغة الassembly
- 1.3 مفهوم الآلة الافتراضية Virtual Machine
- 1.4 تمثيل البيانات - Data Representation
- 1.4.1 الأعداد الصحيحة الثنائية - Binary Integers
- 1.4.2 ترجمة الأعداد الثنائية غير الموقعة unsigned binary integer إلى العشرية Decimal
- 1.4.3 ترجمة الأعداد العشرية غير الموقعة Unsigned Decimal إلى البيناري Binary
- 1.4.4 الجمع الثنائي - Binary Addition
- 1.4.5 أحجام تخزين الأعداد الصحيحة Integer Storage Sizes
- 1.4.6 الأعداد الست عشرية - Hexadecimal Integers
- 1.4.7 تحويل العدد الست عشري غير الموقع Unsigned Hexadecimal الى عشري Decimal
- 1.4.8 تحويل العدد العشري غير الموقع Unsigned Decimal إلى الست عشرية Hexadecimal
- 1.4.9 الجمع الست عشري - Hexadecimal Addition
- 1.4.10. الأعداد الصحيحة الثنائية الSigned التمثيل بالمكملين الاثنين Two’s-Complement
- 1.4.11 الbinary intervals للأعداد الsigned و unsigned
- 1.4.12. شرح معمق ل Signed Binary Integers
- 1.4.13 المكملين الاثنين للعدد في النظام الست عشري Hexadecimal Two’s Complement
- 1.4.14 القيم القصوى والدنيا - Ranges and Sizes of Signed Integer Types
- 1.4.15 الطرح الثنائي - Binary Subtraction
- 1.4.16 تخزّين الأحرف - Character Storage
- 1.4.1 الأعداد الصحيحة الثنائية - Binary Integers
تخزّين الأحرف - Character Storage.
إذا كانت الحواسيب تخزّن البيانات بشكل ثنائي فقط، كيف يتم تمثيل الأحرف؟
يتم ذلك باستخدام مجموعة الأحرف character set، وهي تطابق واحد-إلى-واحد للأحرف إلى الأعداد الصحيحة.
في الأوقات السابقة، استخدمت مجموعات الأحرف 8 بت فقط.
حتى الآن، عند تشغيل الحاسوب في وضع الأحرف (مثل MS-DOS)، تستخدم الحواسيب الصغيرة المتوافقة مع IBM مجموعة الأحرفASCII (تُلفظ "أسكي").
هي اختصار للشيفرة الأمريكية القياسية لتبادل المعلومات American Standard Code for Information Interchange .
في ASCII، يُسند عدد صحيح فريد مكون من 7 بت لكل حرف.
بما أن شفرات ASCII تستخدم فقط أدنى 7 بت من كل بايت، يتم استخدام البت الإضافي في الحواسيب المختلفة لإنشاء مجموعة أحرف خاصة بها.
على سبيل المثال، في الحواسيب الصغيرة المتوافقة مع IBM، تُمثّل القيم من 128 إلى 255 رموزاً رسومية وحروف يونانية.
مجموعة الأحرف ANSI - ANSI Character Set
تعرّف المعهد الوطني الأمريكي للمعايير The American National Standards Institute (ANSI) .
مجموعة أحرف بطول 8 بت تمثّل ما يصل إلى 256 حرفاً.
الحروف الأولى 128 تتوافق مع الحروف والرموز على لوحة المفاتيح الأمريكية القياسية.
الحروف الثانية 128 تمثل الحروف الخاصة مثل الحروف في الأبجديات الدولية، والعلامات، ورموز العملات، والكسور.
استخدمت النسخة الأولى من نظام تشغيل Microsoft Windows مجموعة الأحرف ANSI.
معيار اليونيكود Unicode Standard
في الوقت الحالي، يجب أن تكون الحواسيب قادرة على تمثيل مجموعة واسعة من اللغات الدولية في البرمجيات.
نتيجة لذلك، تم إنشاء معيار اليونيكود كطريقة عالمية لتعريف الأحرف والرموز.
يعرّف اليونيكود أكوادًا رقمية (تُعرف باسم نقاط الشفرة) code points للأحرف والرموز والترقيم المستخدمة في جميع اللغات الرئيسية، وكذلك الأبجديات الأوروبية، والنصوص العربية اليمينية إلى اليسار، والعديد من النصوص الآسيوية.
تُستخدم ثلاث تنسيقات تحويل لتحويل نقاط الشفرة إلى أحرف قابلة للعرض تُعرف باسم تنسيق اليونيكود للتحويل (UTF) Unicode Transformation Format:
تُستخدم UTF-8 في HTML، ولها نفس قيم البايت كما في ASCII.
تُستخدم UTF-16 في البيئات التي تحقق توازنًا بين الوصول الفعّال إلى الأحرف واستخدام اقتصادي للتخزين.
النسخ الحديثة من Microsoft Windows، على سبيل المثال، تستخدم ترميز UTF-16.
يتم تشفير كل حرف في 16 بت.
تُستخدم UTF-32 في البيئات التي لا تُهتم بالمساحة وتتطلب أحرفًا ذات عرض ثابت fixed-width. يتم تشفير كل حرف في 32 بت.
السلاسل ASCII
تُسمى سلسلة متتابعة من حرف واحد أو أكثر سلسلة.
بصورة أكثر تحديدًا، يتم تخزين سلسلة ASCII في الذاكرة كتتابع من البايتات تحتوي على شفرات ASCII.
على سبيل المثال، تُمثّل الشفرات الرقمية للسلسلة "ABC123" الشفرات 41h، 42h، 43h، 31h، 32h، و 33h.
السلسلة المُنهية بصفر null-terminated هي سلسلة من الأحرف تليها بايت واحد يحتوي على الصفر.
تستخدم لغتا C و C++ السلاسل المُنهية بصفر null-terminated، و تستخدم العديد من وظائف نظام تشغيل Windows أن تكون السلاسل بهذا التنسيق.
استخدام جدول ASCII
الجدول شفرات ASCII المستخدمة عند تشغيل وضع النافذة في ويندوز.
للعثور على الشفرة السداسية عشرية لحرف، انظر على طول الصف العلوي من الجدول وابحث في العمود الذي يحتوي على الحرف الذي تريد ترجمته.
الرقم السداسي الأكثر أهمية من القيمة السداسية العشرية في الصف الثاني في أعلى الجدول؛ الرقم الأقل أهمية في العمود الثاني من اليسار.
على سبيل المثال، للعثور على الشفرة السداسية العشرية للحرف a، ابحث عن العمود الذي يحتوي على a وانظر في الصف الثاني:
الرقم السداسي الأول هو 6.
بعد ذلك، انظر إلى اليسار على طول الصف الذي يحتوي على a واحظ أن العمود الثاني يحتوي على الرقم 1.
لذلك، الشفرة السداسية العشرية لـ a هي 61. يتم عرض هذا كما يلي بشكل مبسّط: