Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

db - تعريف Byte

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

الطريقة الأكثر أساسية لإنشاء البيانات في الذاكرة هي dbDefine Byte. وهي تقوم بإنشاء بايت واحد (8 بت) من البيانات.

الصيغة:

label db value
  • label — الاسم الذي تطلقه على عنوان الذاكرة هذا
  • db — توجيه تعريف بايت (Define Byte)
  • 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

كيفية استخدام بايت (byte) في الكود الخاص بك:

section .data
    myByte db 42

section .text
    mov al, [myByte]    ; تحميل القيمة 42 في al
    add al, 1           ; يصبح al يساوي 43
    mov [myByte], al    ; تخزين 43 مرة أخرى في myByte

قاعدة هامة:

القاعدةالشرح
يجب أن تتناسب القيمة مع 1 بايتمن 0 إلى 255 (أو حرف واحد)
استخدم al للتحميل أو التخزينal هو سجل 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اختبر نفسك

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

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