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 db — Define Byte. Crea un byte (8 bits) de datos.
Sintaxis:
label db valuelabel— el nombre que le das a esta dirección de memoriadb— directiva Define Bytevalue— 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 0Lo que puedes almacenar en un byte:
| Tipo | Rango | Ejemplo |
|---|---|---|
| Número pequeño | 0 a 255 | db 100 |
| Carácter | 'A' a 'z' | db 'X' |
| Código ASCII | 0 a 255 | db 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, 67Có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 myByteRegla importante:
| Regla | Explicación |
|---|---|
| El valor debe caber en 1 byte | 0 a 255 (o un solo carácter) |
Usa al para cargar o almacenar | al 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)Desafío
FácilCrea 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 1Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
1La máquina
¿Qué es la CPU?MemoriaRegistros vs. MemoriaCómo funcionan las instruccionesPatrón de dos archivosLa arquitectura x86-644Definición de datos
La sección .datadb - Definir Bytedw - Definir Worddd - Definir Double Worddq - Definir Quad WordCadenas con dbEl símbolo $Resumen: Construir data.asm