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" |
| (variables는 여기에 작성합니다) | section .text |
global _start | |
_start: | |
| (instructions는 여기에 작성합니다) |
각 섹션의 기능:
| 섹션 | 목적 | 어느 파일? |
|---|---|---|
section .data | 프로그램이 실행될 때 메모리에 존재하는 데이터를 보관합니다 | data.asm |
section .text | 실행 가능한 명령어(코드)를 보관합니다 | main.asm |
global _start | 링커가 진입점을 볼 수 있도록 합니다 | main.asm |
_start: | 프로그램 실행이 시작되는 레이블입니다 | main.asm |
지금 당장은
section .data,section .text,global _start또는_start:를 암기할 필요가 없습니다. 다음 수업에서 이러한 명령을 각각 자세히 다룰 것입니다. 지금은 전체적인 그림을 살펴보고 두 파일의 구조를 이해하기만 하세요.
직접 해보기
이 레슨에는 코드 챌린지가 없습니다.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: Assembly 플레이그라운드