Menu
CoddyTech
flag Ar iconالعربيةdown icon

db - تعريف Byte

جزء من قسم الأساسيات في رحلة Assembly على Coddy. الدرس 24 من 45.

أبسط طريقة لإنشاء البيانات في الذاكرة هي db: تعريف بايت. ينشئ بايتًا واحدًا (8 بتات) من البيانات.

الصياغة:

label db value
  • label: الاسم الذي تعطيه لعنوان الذاكرة هذا
  • db: توجيه تعريف بايت
  • value: الرقم أو الحرف المراد تخزينه (من 0 إلى 255)

أمثلة:

section .data
    age db 25          ; ينشئ بايتًا باسم "age" يحتوي على 25
    grade db 'A'       ; ينشئ بايتًا باسم "grade" يحتوي على 65 (قيمة ASCII للحرف 'A')
    zero db 0          ; ينشئ بايتًا باسم "zero" يحتوي على 0

ما يمكنك تخزينه في بايت واحد:

النوعالنطاقمثال
عدد صغير0 إلى 255db 100
حرف'A' إلى 'z'db 'X'
رمز ASCII0 إلى 255db 65 (مثل 'A')

بايتات متعددة في سطر واحد:

يمكنك تعريف عدة بايتات متتالية باستخدام الفواصل:

section .data
    numbers db 5, 10, 15, 20    ; ينشئ 4 بايتات: 5, 10, 15, 20
    letters db 'A', 'B', 'C'    ; ينشئ 3 بايتات: 65, 66, 67

كيفية استخدام بايت في التعليمات البرمجية:

section .data
    myByte db 42

section .text
    mov al, [myByte]    ; حمّل القيمة 42 إلى al
    add al, 1           ; تصبح قيمة al هي 43
    mov [myByte], al    ; خزّن 43 مجددًا في myByte

قاعدة مهمة:

القاعدةالشرح
يجب أن تتسع القيمة في بايت واحدمن 0 إلى 255 (أو حرف واحد)
استخدم سجلًا بعرض 8 بت مثل al للتحميل أو التخزينal (مثل bl وcl وdl) سجل بعرض 8 بت

خطأ شائع:

; خطأ: محاولة تخزين عدد أكبر مما يتسع له بايت واحد
section .data
    error db 300    ; 300 أكبر من اللازم (الحد الأقصى 255)
challenge icon

التحدي

سهل

أنشئ بايتًا باسم score بقيمة 15 في قسم .data.

اكتب الملف data.asm مع قسم .data الصحيح وتوجيه db.

جرّب بنفسك

%include "data.asm"

section .text
    global _start

_start:
    mov al, [score]
    
    mov r12, rax
    
    add al, 48
    mov [digit], al
    
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall
    
    mov rax, 60
    mov rdi, 0
    syscall

section .bss
    digit resb 1
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: Playground لـ Assembly