6.3. 실행파일 만들기

6.3.1. 목적 코드 생성

실행파일을 만들기 위한 첫번째 단계는 소스파일을 컴파일 혹은 어셈블링 해서 목적 코드가 담긴 파일을 만드는 것이다.

nasm 을 사용한다면,

            $ nasm -f elf hello.asm
        

gas 를 사용한다면,

            $ as -o hello.o hello.S
        

와 같이 하면 목적 코드가 담겨 있는 hello.o 를 생성하게 된다.

6.3.2. 실행파일의 생성

두번째 단계로써, 목적코드가 담긴 파일로부터 링커를 호출하여 실행가능한 파일을 만들어내게 된다.

            $ ld -s -o hello hello.o
        

위와 같이 하면 된다. 그렇게 하고 나면, 마침내, hello 라는 실행파일을 볼 수 있게 된다.

한번 실행시켜 보아라. 제대로 동작하는가? 끝이다. 이게 전부이다. 매우 간단하지 않은가? 너무나 간단해서 되려 황당하지 않은가?!?!

참고: (역자 주: 그렇다. 이것이 어셈블리 프로그래밍의 전부이다. 더 깊이 프로그래밍하기 위해서는 커널의 시스템 콜의 번호를 전부 알아야 하고, 인텔 혹은 여러분이 프로그래밍 하기 원하는 플랫폼의 마이크로프로세서의 인스트럭션 세트 및, 특성, 제공하는 기능 등을 잘 알아야 한다. 그러한 것은 해당 마이크로프로세서의 제조업체 홈페이지 등에 가면 자세한 자료를 구할 수 있다. 리눅스 커널의 시스템 콜의 목록과 인수로 레지스터에 무엇을 넣어주어야 하는가에 관한 자료는 http://linuxassembly.org 의 문서를 참조하라.