Menu
Coddy logo textTech

db - Definir Byte

Parte da seção Fundamentos do Journey de Assembly da Coddy — lição 24 de 45.

A maneira mais básica de criar dados na memória é dbDefinir Byte. Ele cria um byte (8 bits) de dados.

Sintaxe:

label db value
  • label — o nome que você dá a este endereço de memória
  • db — diretiva Define Byte
  • value — o número ou caractere a ser armazenado (0 a 255)

Exemplos:

section .data
    age db 25          ; Cria um byte chamado "age" contendo 25
    grade db 'A'       ; Cria um byte chamado "grade" contendo 65 (ASCII para 'A')
    zero db 0          ; Cria um byte chamado "zero" contendo 0

O que você pode armazenar em um byte:

TipoIntervaloExemplo
Número pequeno0 a 255db 100
Caractere'A' a 'z'db 'X'
Código ASCII0 a 255db 65 (o mesmo que 'A')

Múltiplos bytes em uma linha:

Você pode definir vários bytes em uma linha usando vírgulas:

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

Como usar um byte em seu código:

section .data
    myByte db 42

section .text
    mov al, [myByte]    ; Carrega o valor 42 em al
    add al, 1           ; al torna-se 43
    mov [myByte], al    ; Armazena 43 de volta em myByte

Regra importante:

RegraExplicação
O valor deve caber em 1 byte0 a 255 (ou um único caractere)
Use al para carregar ou armazenaral é o registrador de 8 bits para bytes

Erro comum:

; Errado: tentando armazenar um número grande demais para um byte
section .data
    error db 300    ; 300 é grande demais (máx 255)
challenge icon

Desafio

Fácil

Crie um byte chamado score com o valor 15 na seção .data.

Escreva o arquivo data.asm com a seção .data correta e a diretiva db.

Experimente você mesmo

%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 iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos