Menu
Coddy logo textTech

db - 바이트 정의

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

메모리에 data를 만드는 가장 기본적인 방법은 db입니다: Define Byte. 이는 1바이트(8비트)의 data를 만듭니다.

구문:

label db value
  • label: 이 메모리 주소에 지정하는 이름
  • db: 바이트를 정의하는 지시어
  • value: store할 number 또는 character (0~255)

예시:

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

하나의 byte에 store할 수 있는 것:

유형범위예시
작은 number0에서 255까지db 100
character'A'에서 'z'까지db 'X'
ASCII 코드0에서 255까지db 65 ('A'와 같음)

한 줄에 여러 bytes:

쉼표를 사용하여 여러 bytes를 연속으로 정의할 수 있습니다:

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

코드에서 byte를 사용하는 방법:

section .data
    myByte db 42

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

중요한 규칙:

규칙설명
Value는 1바이트에 맞아야 함0에서 255까지(또는 단일 character)
al을 사용하여 load 또는 storeal은 bytes를 위한 8비트 레지스터임

흔한 실수:

; 잘못됨: 바이트에 너무 큰 숫자를 저장하려고 함
section .data
    error db 300    ; 300은 너무 큼 (최대 255)
challenge icon

챌린지

쉬움

.data 섹션에서 값이 15인 score이라는 byte를 Create하세요.

올바른 .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실력 점검

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

기초의 모든 레슨

직접 연습해 보세요: Assembly 플레이그라운드