Menu
Coddy logo textTech

db - 바이트 정의

Coddy Assembly 여정의 기초 섹션에 포함된 레슨 — 45개 중 24번째.

메모리에 데이터를 생성하는 가장 기본적인 방법은 dbDefine Byte입니다. 이것은 1바이트(8비트)의 데이터를 생성합니다.

구문:

label db value
  • label — 이 메모리 주소에 부여하는 이름
  • db — Define Byte 지시어
  • value — 저장할 숫자 또는 문자 (0에서 255 사이)

예제:

section .data
    age db 25          ; 25를 포함하는 "age"라는 바이트를 생성합니다
    grade db 'A'       ; 65('A'의 ASCII 값)를 포함하는 "grade"라는 바이트를 생성합니다
    zero db 0          ; 0을 포함하는 "zero"라는 바이트를 생성합니다

1바이트에 저장할 수 있는 것:

유형범위예시
작은 숫자0에서 255db 100
문자'A'에서 'z'db 'X'
ASCII 코드0에서 255db 65 ('A'와 동일)

한 줄에 여러 바이트:

쉼표를 사용하여 여러 바이트를 한 줄에 정의할 수 있습니다:

section .data
    numbers db 5, 10, 15, 20    ; 4바이트를 생성합니다: 5, 10, 15, 20
    letters db 'A', 'B', 'C'    ; 3바이트를 생성합니다: 65, 66, 67

코드에서 바이트를 사용하는 방법:

section .data
    myByte db 42

section .text
    mov al, [myByte]    ; al에 값 42를 로드합니다
    add al, 1           ; al은 43이 됩니다
    mov [myByte], al    ; 43을 다시 myByte에 저장합니다

중요 규칙:

규칙설명
값은 1바이트에 맞아야 합니다0에서 255 (또는 단일 문자)
로드하거나 저장할 때 al을 사용하세요al은 바이트를 위한 8비트 레지스터입니다

흔한 실수:

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

챌린지

쉬움

.data 섹션에 값이 15인 score라는 바이트를 생성하세요.

올바른 .data 섹션과 db 지시어를 사용하여 data.asm 파일을 작성하세요.

직접 해보기

%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 icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨