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 valuelabel: bu bellek adresine verdiğiniz addb: Byte Tanımlama yönergesivalue: 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ştururBir baytta saklayabileceklerin:
| Tür | Aralık | Örnek |
|---|---|---|
| Küçük sayı | 0'dan 255'e | db 100 |
| 'A' ile 'z' arası | db 'X' | |
| ASCII kodu | 0'dan 255'e | db 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, 67Kodunuzda 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:
| Kural | Açıklama |
|---|---|
| Değer 1 bayta sığmalıdır | 0 ile 255 arası (veya tek bir karakter) |
Yüklemek veya depolamak için al gibi 8 bitlik bir yazmaç kullanın | al (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)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 1Bu 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