ملخص: بناء data.asm
جزء من قسم الأساسيات في رحلة Assembly على Coddy. الدرس 30 من 45.
التحدي
لقد تعلمت عدة طرق لتعريف البيانات في القسم .data:
| الدرس | ما تعلمته |
|---|---|
| 3.1 | القسم .data، حيث توضع البيانات |
| 3.2 | db: تعريف بايت (1 بايت) |
| 3.3 | dw: تعريف كلمة (2 بايت) |
| 3.4 | dd: تعريف كلمة مزدوجة (4 بايت) |
| 3.5 | dq: تعريف كلمة رباعية (8 بايت) |
| 3.6 | السلاسل النصية باستخدام db: إنشاء نص |
| 3.7 | الرمز $: حساب أطوال السلاسل النصية تلقائيًا |
حان الوقت الآن لجمع كل شيء معًا وإنشاء ملف data.asm كامل.
ما ستنشئه في هذا التحدي:
ملف data.asm يحتوي على:
- سلسلة نصية مع حساب تلقائي للطول
- قيمة بايت
- قيمة كلمة
- قيمة كلمة مزدوجة
- قيمة كلمة رباعية
كل ذلك منظم بشكل صحيح في القسم .data.
مثال على ملف data.asm كامل:
section .data
; String with automatic length
msg db 'Hello', 0x0a
msgLen equ $ - msg
; Numbers of different sizes
smallNum db 100
mediumNum dw 5000
largeNum dd 100000
veryLarge dq 5000000000لماذا هذا مهم:
في الفصول التالية، ستستخدم ملفات data.asm مثل هذا لتخزين البيانات التي تحتاج إليها برامجك. سيضمّن الملف main.asm ملف data.asm الخاص بك، ويستخدم التسميات والأطوال التي عرّفتها.
التحدي
أنشئ ملف data.asm كاملًا يتضمن ما يلي:
- سلسلة نصية باسم
welcomeوقيمتها 'Welcome!' متبوعة بسطر جديد (0x0a) - ثابت باسم
welcomeLenيحسب الطول تلقائيًا باستخدام$ - welcome - بايت باسم
scoreوقيمته 99 - كلمة باسم
yearوقيمتها 2025 - كلمة مزدوجة باسم
populationوقيمتها 8500000 - كلمة رباعية باسم
starsوقيمتها 100000000000
كل ذلك داخل القسم .data.
جرّب بنفسك
%include "data.asm"
section .text
global _start
_start:
; اطبع السلسلة النصية الترحيبية
mov rax, 1
mov rdi, 1
mov rsi, welcome
mov rdx, welcomeLen
syscall
; إنهاء البرنامج
mov rax, 60
mov rdi, 0
syscallجميع دروس الأساسيات
4تعريف البيانات
قسم .datadb - تعريف Bytedw - تعريف Worddd - تعريف Double Worddq - تعريف Quad Wordالسلاسل النصية باستخدام dbالرمز $ملخص: بناء data.asm2أنظمة العد
لماذا النظام الثنائي؟الأعداد الثنائيةمن العشري إلى الثنائيلماذا النظام الست عشري؟من الست عشري إلى العشريمن العشري إلى الست عشريASCII والست عشري5استدعاء النظام Exit Syscall
ما هو الـ Syscall؟استدعاء النظام Exit Syscall (60)رموز الخروج (Exit Codes)ملخص: الخروج النظيف (Clean Exit)تدرّب بنفسك: Playground لـ Assembly