db - 바이트 정의
Coddy Assembly 여정의 기초 섹션에 포함된 레슨. 45개 중 24번째.
메모리에 data를 만드는 가장 기본적인 방법은 db입니다: Define Byte. 이는 1바이트(8비트)의 data를 만듭니다.
구문:
label db valuelabel: 이 메모리 주소에 지정하는 이름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할 수 있는 것:
| 유형 | 범위 | 예시 |
|---|---|---|
| 작은 number | 0에서 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 또는 store | al은 bytes를 위한 8비트 레지스터임 |
흔한 실수:
; 잘못됨: 바이트에 너무 큰 숫자를 저장하려고 함
section .data
error db 300 ; 300은 너무 큼 (최대 255)챌린지
쉬움.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이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: Assembly 플레이그라운드