Menu
Coddy logo textTech

요약: data.asm 빌드하기

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

challenge icon

챌린지

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

레슨배운 내용
3.1데이터가 들어가는 .data 섹션
3.2db: Byte 정의 (1 byte)
3.3dw: Word 정의 (2 bytes)
3.4dd: Double Word 정의 (4 bytes)
3.5dq: Quad Word 정의 (8 bytes)
3.6db를 사용한 문자열: text 만들기
3.7$ 기호: string length 자동 계산

이제 모든 내용을 하나로 모아 완전한 data.asm 파일을 만들 차례입니다.

이 challenge에서 만들 것:

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

  • automatic length calculation이 적용된 문자열
  • byte 값
  • word 값
  • double word 값
  • quad word 값

모두 .data 섹션에 올바르게 정리합니다.

완전한 <strong>data.asm</strong>의 예:

section .data
    ; String with automatic length
    msg db 'Hello', 0x0a
    msgLen equ $ - msg
    
    ; Numbers of different sizes
    smallNum db 100
    mediumNum dw 5000
    largeNum dd 100000
    veryLarge dq 5000000000

이것이 중요한 이유:

다음 챕터에서는 이와 같은 data.asm 파일을 사용하여 프로그램에 필요한 데이터를 저장합니다. main.asm 파일은 여러분의 data.asm을 include하고, 여러분이 정의한 label과 length를 사용합니다.

Challenge

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

  1. welcome이라는 string을 만들고, 값 'Welcome!' 뒤에 newline (0x0a)을 추가합니다
  2. welcomeLen이라는 constant를 만들고 $ - welcome을 사용하여 length를 automatic으로 계산합니다
  3. 값 99를 갖는 score라는 byte를 만듭니다
  4. 값 2025를 갖는 year라는 word를 만듭니다
  5. 값 8500000을 갖는 population이라는 double word를 만듭니다
  6. 값 100000000000을 갖는 stars라는 quad word를 만듭니다

모두 .data 섹션 안에 작성합니다.

직접 해보기

%include "data.asm"

section .text
    global _start

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

기초의 모든 레슨

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