Menu
CoddyTech

요약: 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 섹션에 알맞게 정리합니다.

완성된 data.asm의 예:

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을 포함하고, 정의한 레이블과 길이를 사용하게 됩니다.

챌린지

다음 내용으로 완전한 data.asm 파일을 만드세요.

  1. welcome이라는 문자열을 만들고 값은 'Welcome!'로 지정한 다음 줄바꿈(0x0a)을 추가합니다.
  2. welcomeLen이라는 상수를 만들고 $ - welcome을 사용해 길이를 자동으로 계산합니다.
  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

기초의 모든 레슨

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