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

db - تعريف Byte

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

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

البنية:

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

أمثلة:

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

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

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

عدة bytes في سطر واحد:

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

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 byteمن 0 إلى 255 (أو character واحد)
استخدم al لتحميل أو storeal هو السجل 8-bit الخاص بـ bytes

خطأ شائع:

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

التحدي

سهل

أنشئ byte باسم 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