Menu
CoddyTech

db - Byte Tanımlama

Coddy'nin Assembly Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 24 / 45.

Bellekte veri oluşturmanın en temel yolu db: Bayt Tanımla. Bir bayt (8 bit) veri oluşturur.

Sözdizimi:

label db value
  • label: bu bellek adresine verdiğiniz ad
  • db: Byte Tanımlama yönergesi
  • value: saklanacak sayı veya karakter (0 ile 255 arasında)

Örnekler:

section .data
    age db 25          ; 25 değerini içeren "age" adlı bir bayt oluşturur
    grade db 'A'       ; 65 değerini içeren "grade" adlı bir bayt oluşturur ('A' karakterinin ASCII değeri)
    zero db 0          ; 0 değerini içeren "zero" adlı bir bayt oluşturur

Bir baytta saklayabileceklerin:

TürAralıkÖrnek
Küçük sayı0'dan 255'edb 100
'A' ile 'z' arasıdb 'X'
ASCII kodu0'dan 255'edb 65 ('A' ile aynı)

Tek satırda birden fazla bayt:

Virgül kullanarak art arda birkaç bayt tanımlayabilirsin:

section .data
    numbers db 5, 10, 15, 20    ; 4 bayt oluşturur: 5, 10, 15, 20
    letters db 'A', 'B', 'C'    ; 3 bayt oluşturur: 65, 66, 67

Kodunuzda bir bayt nasıl kullanılır:

section .data
    myByte db 42

section .text
    mov al, [myByte]    ; 42 değerini al içine yükle
    add al, 1           ; al, 43 olur
    mov [myByte], al    ; 43 değerini yeniden myByte içine yaz

Önemli kural:

KuralAçıklama
Değer 1 bayta sığmalıdır0 ile 255 arası (veya tek bir karakter)
Yüklemek veya depolamak için al gibi 8 bitlik bir yazmaç kullanınal (bl, cl, dl gibi) 8 bitlik bir yazmaçtır

Yaygın hata:

; Yanlış: bir byte için fazla büyük bir sayı depolanmaya çalışılıyor
section .data
    error db 300    ; 300 çok büyük (en fazla 255)
challenge icon

Görev

Kolay

.data bölümünde değeri 15 olan score adlı bir bayt oluştur.

data.asm dosyasını doğru .data bölümü ve db yönergesiyle yaz.

Kendin dene

%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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Assembly playground