Menu
CoddyTech

db - 바이트 정의

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

메모리에 데이터를 만드는 가장 기본적인 방법은 db입니다: 바이트 정의. 데이터의 1바이트(8비트)를 생성합니다.

구문:

label db value
  • label: 이 메모리 주소에 지정하는 이름
  • db: 바이트 정의 지시어
  • value: 저장할 숫자 또는 문자(0~255)

예시:

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

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

유형범위예시
작은 수0부터 255까지db 100
문자'A'부터 'z'까지db 'X'
ASCII 코드0부터 255까지db 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]    ; 값 42를 al에 불러옵니다
    add al, 1           ; al이 43이 됩니다
    mov [myByte], al    ; 43을 myByte에 다시 저장합니다

중요한 규칙:

규칙설명
값은 1바이트에 들어가야 합니다0부터 255까지(또는 단일 문자)
로드하거나 저장할 때 al과 같은 8비트 레지스터를 사용합니다al(bl, cl, dl 등)은 8비트 레지스터입니다

흔한 실수:

; 잘못됨: 바이트에 저장하기에는 너무 큰 숫자를 저장하려고 함
section .data
    error db 300    ; 300은 너무 큼 (최대 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실력 점검

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

기초의 모든 레슨

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