Menu
Coddy logo textTech

db - Definire un byte

Fa parte della sezione Fondamenti del percorso Assembly di Coddy. Lezione 24 di 45.

Il modo più semplice per creare dati in memoria è db: Definisci byte. Crea un byte (8 bit) di dati.

Sintassi:

label db value
  • label: il nome che assegni a questo indirizzo di memoria
  • db: direttiva Define Byte
  • value: il numero o carattere da memorizzare (da 0 a 255)

Esempi:

section .data
    age db 25          ; Crea un byte chiamato "age" contenente 25
    grade db 'A'       ; Crea un byte chiamato "grade" contenente 65 (codice ASCII di 'A')
    zero db 0          ; Crea un byte chiamato "zero" contenente 0

Cosa puoi memorizzare in un byte:

TipoIntervalloEsempio
Numero piccolo0 to 255db 100
Carattere'A' to 'z'db 'X'
Codice ASCII0 to 255db 65 (uguale a 'A')

Più byte sulla stessa riga:

Puoi definire diversi byte di seguito usando le virgole:

section .data
    numbers db 5, 10, 15, 20    ; Crea 4 byte: 5, 10, 15, 20
    letters db 'A', 'B', 'C'    ; Crea 3 byte: 65, 66, 67

Come usare un byte nel tuo codice:

section .data
    myByte db 42

section .text
    mov al, [myByte]    ; Carica il valore 42 in al
    add al, 1           ; al diventa 43
    mov [myByte], al    ; Memorizza nuovamente 43 in myByte

Regola importante:

RegolaSpiegazione
Il valore deve rientrare in 1 byteDa 0 a 255 (o un singolo carattere)
Usa al per caricare o memorizzareal è il registro a 8 bit per i byte

Errore comune:

; Wrong: trying to store a number too large for a byte
section .data
    error db 300    ; 300 is too big (max 255)
challenge icon

Sfida

Facile

Crea un byte chiamato score con il valore 15 nella sezione .data.

Scrivi il file data.asm con la sezione .data corretta e la direttiva db.

Provalo tu

%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 iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Playground Assembly