요약: data.asm 빌드하기
Coddy Assembly 여정의 기초 섹션에 포함된 레슨. 45개 중 30번째.
챌린지
.data 섹션에서 데이터를 정의하는 여러 가지 방법을 배웠습니다:
| 레슨 | 배운 내용 |
|---|---|
| 3.1 | 데이터가 들어가는 .data 섹션 |
| 3.2 | db: Byte 정의 (1 byte) |
| 3.3 | dw: Word 정의 (2 bytes) |
| 3.4 | dd: Double Word 정의 (4 bytes) |
| 3.5 | dq: Quad Word 정의 (8 bytes) |
| 3.6 | db를 사용한 문자열: 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 파일을 만드세요:
welcome이라는 string을 만들고, 값 'Welcome!' 뒤에 newline (0x0a)을 추가합니다welcomeLen이라는 constant를 만들고$ - welcome을 사용하여 length를 automatic으로 계산합니다- 값 99를 갖는
score라는 byte를 만듭니다 - 값 2025를 갖는
year라는 word를 만듭니다 - 값 8500000을 갖는
population이라는 double word를 만듭니다 - 값 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 플레이그라운드