db - 바이트 정의
Coddy Assembly 여정의 기초 섹션에 포함된 레슨 — 45개 중 24번째.
메모리에 데이터를 생성하는 가장 기본적인 방법은 db — Define Byte입니다. 이것은 1바이트(8비트)의 데이터를 생성합니다.
구문:
label db valuelabel— 이 메모리 주소에 부여하는 이름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에서 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] ; 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)챌린지
쉬움.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이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.