ASCII والست عشري
جزء من قسم الأساسيات في رحلة Assembly على Coddy — الدرس 13 من 45.
أجهزة الكمبيوتر تفهم الأرقام فقط. إذًا كيف تخزن أحرفًا مثل 'A' أو 'b' أو '?'؟
الإجابة هي ASCII (المعيار الأمريكي لتبادل المعلومات). ASCII هو جدول يخصص رقماً لكل حرف.
كيف يعمل نظام ASCII:
| الحرف | رقم ASCII (عشري) | رقم ASCII (ست عشري) |
|---|---|---|
| 'A' | 65 | 0x41 |
| 'B' | 66 | 0x42 |
| 'C' | 67 | 0x43 |
| 'a' | 97 | 0x61 |
| 'b' | 98 | 0x62 |
| '0' | 48 | 0x30 |
| '1' | 49 | 0x31 |
| ' ' (مسافة) | 32 | 0x20 |
| '\n' (سطر جديد) | 10 | 0x0A |
| '\0' (null) | 0 | 0x00 |
قيم ASCII المهمة التي يجب حفظها للغة التجميع (assembly):
| الحرف | Hex | لماذا تحتاج إليه |
|---|---|---|
| 'A' | 0x41 | تبدأ الحروف الكبيرة من هنا |
| 'a' | 0x61 | تبدأ الحروف الصغيرة من هنا |
| '0' | 0x30 | تبدأ الأرقام من هنا |
| مسافة | 0x20 | لفصل الكلمات |
سطر جديد (\n) | 0x0A | للانتقال إلى السطر التالي |
Null (\0) | 0x00 | علامة نهاية السلسلة النصية |
لاحظ النمط:
| النمط | مثال |
|---|---|
| الأحرف الكبيرة A-Z متتالية | 'A'=65, 'B'=66, 'C'=67... |
| الأحرف الصغيرة a-z متتالية | 'a'=97, 'b'=98, 'c'=99... |
| الأرقام 0-9 متتالية | '0'=48, '1'=49, '2'=50... |
| الأحرف الصغيرة = الأحرف الكبيرة + 32 | 'a' (97) = 'A' (65) + 32 |
كيفية تخزين السلسلة النصية (string) في الذاكرة:
يتم تخزين كلمة "Hi" مع سطر جديد كالتالي:
| الحرف | Hex | ثنائي |
|---|---|---|
| 'H' | 0x48 | 01001000 |
| 'i' | 0x69 | 01101001 |
| '\n' | 0x0A | 00001010 |
في لغة التجميع (assembly)، تكتب هذا كالتالي: db 'Hi', 0x0A
لماذا تحتاج إلى هذا للغة التجميع:
عندما تقوم بتعريف سلسلة نصية في data.asm، فإنك تقوم بتخزين رموز ASCII في الذاكرة. وعندما تقوم بطباعة سلسلة نصية، يقرأ نظام التشغيل رموز ASCII تلك ويعرض الأحرف المقابلة لها.
جرّب بنفسك
لا يتضمّن هذا الدرس تحدّيًا برمجيًا.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
2أنظمة العد
لماذا النظام الثنائي؟الأعداد الثنائيةمن العشري إلى الثنائيلماذا النظام الست عشري؟من الست عشري إلى العشريمن العشري إلى الست عشريASCII والست عشري5استدعاء النظام Exit Syscall
ما هو الـ Syscall؟استدعاء النظام Exit Syscall (60)رموز الخروج (Exit Codes)ملخص: الخروج النظيف (Clean Exit)