db - تعريف Byte
جزء من قسم الأساسيات في رحلة Assembly على Coddy. الدرس 24 من 45.
إن أبسط طريقة لإنشاء data في الذاكرة هي db: Define Byte. إذ إنها تنشئ byte واحدًا (8 بت) من data.
البنية:
label db valuelabel: الاسم الذي تمنحه لعنوان الذاكرة هذاdb: توجيه Define Bytevalue: الرقم أو character الذي سيتم تخزينه (من 0 إلى 255)
أمثلة:
section .data
age db 25 ; ينشئ بايتًا يسمى "age" يحتوي على 25
grade db 'A' ; ينشئ بايتًا يسمى "grade" يحتوي على 65 (ASCII لـ 'A')
zero db 0 ; ينشئ بايتًا يسمى "zero" يحتوي على 0ما يمكنك تخزينه في byte واحد:
| النوع | النطاق | مثال |
|---|---|---|
| رقم صغير | من 0 إلى 255 | db 100 |
| character | 'A' إلى 'z' | db 'X' |
| رمز ASCII | من 0 إلى 255 | db 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 لتحميل أو store | al هو السجل 8-bit الخاص بـ bytes |
خطأ شائع:
; خطأ: محاولة تخزين رقم كبير جدًا بالنسبة للبايت
section .data
error db 300 ; 300 كبير جدًا (الحد الأقصى 255)التحدي
سهلأنشئ 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يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
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