Two-File 패턴
Coddy Assembly 여정의 기초 섹션에 포함된 레슨 — 45개 중 5번째.
이 과정 전반에 걸쳐, 여러분은 두 개의 별도 파일을 사용하여 모든 프로그램을 작성하게 될 것입니다:
| 파일 | 용도 |
|---|---|
data.asm | 모든 데이터(문자열, 숫자, 변수)를 저장합니다 |
main.asm | 모든 코드(명령어, 로직, 흐름)를 저장합니다 |
이것은 어셈블러에서 필수적인 사항은 아닙니다. 모든 내용을 하나의 파일에 담을 수도 있습니다. 하지만 코드와 데이터를 분리하면 프로그램이 더 깔끔해지고 가독성이 좋아지며 디버깅도 쉬워집니다.
왜 파일이 두 개인가요?
- 조직화 — 데이터와 코드는 목적이 다릅니다. 이를 분리해 두면 생각을 명확히 하는 데 도움이 됩니다.
- 재사용성 — 동일한
data.asm을 서로 다른main.asm파일과 함께 사용할 수 있습니다.
- 가독성 — 코드를 찾기 위해 긴 문자열을 스크롤할 필요가 없습니다.
- 업계 관행 — 실제 프로젝트에서는 코드와 데이터를 분리합니다(종종 더 복잡한 방식으로).
작동 원리:
main.asm 파일은 %include 지시어를 사용하여 data.asm 파일을 포함합니다. 이것은 어셈블러에게 "어셈블하기 전에 data.asm의 전체 내용을 바로 여기에 삽입하라"고 지시합니다.
두 파일을 나란히 놓은 모습:
| data.asm | main.asm |
|---|---|
section .data | %include "data.asm" |
| (변수가 여기에 들어갑니다) | section .text |
global _start | |
_start: | |
| (명령어가 여기에 들어갑니다) |
각 섹션의 역할:
| 섹션 | 용도 | 어떤 파일? |
|---|---|---|
section .data | 프로그램 실행 시 메모리에 존재하는 데이터를 보유합니다 | data.asm |
section .text | 실행 가능한 명령(코드)을 보유합니다 | main.asm |
global _start | 링커가 진입점(entry point)을 볼 수 있도록 합니다 | main.asm |
_start: | 프로그램 실행이 시작되는 레이블 | main.asm |
지금 당장
section .data,section .text,global _start또는_start:를 외울 필요는 없습니다. 다음 레슨에서 이 명령어들 각각을 자세히 다룰 것입니다. 지금은 전체적인 그림을 보고 두 파일의 구조를 이해하는 데 집중하세요.
직접 해보기
이 레슨에는 코드 챌린지가 없습니다.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.