Menu
Coddy logo textTech

요약: data.asm 빌드하기

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

challenge icon

챌린지

여러분은 .data 섹션에서 데이터를 정의하는 여러 가지 방법을 배웠습니다:

레슨학습 내용
3.1.data 섹션 — 데이터가 들어가는 곳
3.2db — 바이트 정의 (1바이트)
3.3dw — 워드 정의 (2바이트)
3.4dd — 더블 워드 정의 (4바이트)
3.5dq — 쿼드 워드 정의 (8바이트)
3.6db를 이용한 문자열 — 텍스트 생성
3.7$ 기호 — 문자열 길이 자동 계산

이제 모든 것을 하나로 합쳐 완전한 data.asm 파일을 만들 차례입니다.

이번 챌린지에서 만들 내용:

다음 내용을 포함하는 data.asm 파일:

  • 자동 길이 계산 기능이 있는 문자열
  • 바이트 값
  • 워드 값
  • 더블 워드 값
  • 쿼드 워드 값

모두 .data 섹션 안에 적절히 구성되어야 합니다.

완성된 <strong>data.asm</strong>의 예시:

section .data
    ; 자동 길이 계산이 포함된 문자열
    msg db 'Hello', 0x0a
    msgLen equ $ - msg
    
    ; 다양한 크기의 숫자들
    smallNum db 100
    mediumNum dw 5000
    largeNum dd 100000
    veryLarge dq 5000000000

이것이 중요한 이유:

다음 장들에서는 프로그램에 필요한 데이터를 저장하기 위해 이와 같은 data.asm 파일을 사용하게 됩니다. main.asm 파일은 여러분의 data.asm을 포함(include)하고 여러분이 정의한 레이블과 길이를 사용하게 될 것입니다.

챌린지

다음 내용을 포함하는 완전한 data.asm 파일을 만드세요:

  1. 값이 'Welcome!'이고 뒤에 줄바꿈(0x0a)이 오는 welcome이라는 이름의 문자열
  2. $ - welcome을 사용하여 길이를 자동으로 계산하는 welcomeLen이라는 이름의 상수
  3. 값이 99인 score라는 이름의 바이트
  4. 값이 2025인 year라는 이름의 워드
  5. 값이 8500000인 population이라는 이름의 더블 워드
  6. 값이 100000000000인 stars라는 이름의 쿼드 워드

모든 내용은 .data 섹션 안에 있어야 합니다.

직접 해보기

%include "data.asm"

section .text
    global _start

_start:
    ; 환영 문자열 출력
    mov rax, 1
    mov rdi, 1
    mov rsi, welcome
    mov rdx, welcomeLen
    syscall
    
    ; 종료
    mov rax, 60
    mov rdi, 0
    syscall

기초의 모든 레슨