Menu
Coddy logo textTech

db - Byte Tanımlama

Coddy'nin Assembly Journey'sinin Temeller bölümünün bir parçası — ders 24 / 45.

Bellekte veri oluşturmanın en temel yolu dbDefine Byte'tır. Bir baytlık (8 bit) veri oluşturur.

Sözdizimi:

label db value
  • label — bu bellek adresine verdiğiniz isim
  • db — Define Byte yönergesi
  • value — saklanacak sayı veya karakter (0 ile 255 arası)

Örnekler:

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

Bir baytta saklayabilecekleriniz:

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

Tek satırda birden fazla bayt:

Virgül 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 byte 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'ü tekrar myByte içine 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 kaydedicidir

Yaygın hata:

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

Görev

Kolay

.data bölümünde 15 değerine sahip score adında bir bayt oluşturun.

Doğru .data bölümü ve db yönergesi ile 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.

Temeller bölümündeki tüm dersler