Menu
Coddy logo textTech

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 kullanmaktır: Bayt Tanımla. Bir bayt (8 bit) veri oluşturur.

Sözdizimi:

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

Örnekler:

section .data
    age db 25          ; "age" adında 25 içeren bir bayt oluşturur
    grade db 'A'       ; "grade" adında 65 içeren bir bayt oluşturur ('A' için ASCII)
    zero db 0          ; "zero" adında 0 içeren bir bayt oluşturur

Bir baytta saklayabilecekleriniz:

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

Tek satırda birden çok bayt:

Virgüller kullanarak arka arkaya birkaç bayt tanımlayabilirsiniz:

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'a yükle
    add al, 1           ; al 43 olur
    mov [myByte], al    ; 43'ü myByte'a geri sakla

Ö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 kullanınal, baytlar için 8 bitlik yazmaçtır

Yaygın hata:

; Yanlış: bir bayt için çok büyük bir sayı saklamaya çalışmak
section .data
    error db 300    ; 300 çok büyük (maks 255)
challenge icon

Görev

Kolay

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

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

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