Menu
CoddyTech

db, định nghĩa byte

Thuộc phần Kiến thức nền tảng trong hành trình Assembly của Coddy. Bài học 24 trên 45.

Cách cơ bản nhất để tạo dữ liệu trong bộ nhớ là db: Define Byte. Lệnh này tạo một byte (8 bit) dữ liệu.

Cú pháp:

label db value
  • label: tên bạn đặt cho địa chỉ bộ nhớ này
  • db: chỉ thị định nghĩa byte
  • value: số hoặc ký tự cần lưu (từ 0 đến 255)

Ví dụ:

section .data
    age db 25          ; Tạo một byte tên là "age" chứa 25
    grade db 'A'       ; Tạo một byte tên là "grade" chứa 65 (mã ASCII của 'A')
    zero db 0          ; Tạo một byte tên là "zero" chứa 0

Những gì bạn có thể lưu trữ trong một byte:

KiểuPhạm viVí dụ
Số nhỏtừ 0 đến 255db 100
Ký tự'A' đến 'z'db 'X'
Mã ASCIItừ 0 đến 255db 65 (giống 'A')

Nhiều byte trên một dòng:

Bạn có thể định nghĩa nhiều byte liên tiếp bằng dấu phẩy:

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

Cách sử dụng một byte trong code:

section .data
    myByte db 42

section .text
    mov al, [myByte]    ; Nạp giá trị (value) 42 vào al
    add al, 1           ; al trở thành 43
    mov [myByte], al    ; Lưu 43 trở lại myByte

Quy tắc quan trọng:

Quy tắcGiải thích
Giá trị phải vừa trong 1 byteTừ 0 đến 255 (hoặc một ký tự)
Dùng một thanh ghi 8 bit như al để tải hoặc lưual (giống như bl, cl, dl) là một thanh ghi 8 bit

Lỗi thường gặp:

; Sai: cố lưu một số quá lớn trong một byte
section .data
    error db 300    ; 300 quá lớn (tối đa 255)
challenge icon

Thử thách

Dễ

Tạo một byte có tên score với giá trị 15 trong phần .data.

Viết tệp data.asm với phần .data chính xác và chỉ thị db.

Tự làm thử

%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 iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Playground Assembly