요약: data.asm 빌드하기
Coddy Assembly 여정의 기초 섹션에 포함된 레슨. 45개 중 30번째.
챌린지
.data 섹션에서 데이터를 정의하는 여러 가지 방법을 배웠습니다.
| 강의 | 배운 내용 |
|---|---|
| 3.1 | 데이터가 들어가는 .data 섹션 |
| 3.2 | db: 바이트 정의(1바이트) |
| 3.3 | dw: 워드 정의(2바이트) |
| 3.4 | dd: 더블 워드 정의(4바이트) |
| 3.5 | dq: 쿼드 워드 정의(8바이트) |
| 3.6 | db를 사용한 문자열: 텍스트 만들기 |
| 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 파일을 만드세요.
welcome이라는 문자열을 만들고 값은 'Welcome!'로 지정한 다음 줄바꿈(0x0a)을 추가합니다.welcomeLen이라는 상수를 만들고$ - welcome을 사용해 길이를 자동으로 계산합니다.- 값이 99인
score라는 바이트를 만듭니다. - 값이 2025인
year라는 워드를 만듭니다. - 값이 8500000인
population이라는 더블 워드를 만듭니다. - 값이 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 플레이그라운드