Menu
Coddy logo textTech

db - Definir Byte

Parte de la sección Fundamentos del Journey de Assembly de Coddy — lección 24 de 45.

La forma más básica de crear datos en memoria es dbDefine Byte. Crea un byte (8 bits) de datos.

Sintaxis:

label db value
  • label — el nombre que le das a esta dirección de memoria
  • db — directiva Define Byte
  • value — el número o carácter a almacenar (0 a 255)

Ejemplos:

section .data
    age db 25          ; Crea un byte llamado "age" que contiene 25
    grade db 'A'       ; Crea un byte llamado "grade" que contiene 65 (ASCII para 'A')
    zero db 0          ; Crea un byte llamado "zero" que contiene 0

Lo que puedes almacenar en un byte:

TipoRangoEjemplo
Número pequeño0 a 255db 100
Carácter'A' a 'z'db 'X'
Código ASCII0 a 255db 65 (lo mismo que 'A')

Múltiples bytes en una línea:

Puedes definir varios bytes seguidos usando comas:

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

Cómo usar un byte en tu código:

section .data
    myByte db 42

section .text
    mov al, [myByte]    ; Carga el valor 42 en al
    add al, 1           ; al se convierte en 43
    mov [myByte], al    ; Almacena 43 de nuevo en myByte

Regla importante:

ReglaExplicación
El valor debe caber en 1 byte0 a 255 (o un solo carácter)
Usa al para cargar o almacenaral es el registro de 8 bits para bytes

Error común:

; Error: intentando almacenar un número demasiado grande para un byte
section .data
    error db 300    ; 300 es demasiado grande (máx 255)
challenge icon

Desafío

Fácil

Crea un byte llamado score con el valor 15 en la sección .data.

Escribe el archivo data.asm con la sección .data correcta y la directiva db.

Pruébalo tú mismo

%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 iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos