2011-11-18 5 views
6

매우 기본적인 IO 기능을 정의하는 파일이 있는데이 파일을 사용하는 다른 파일을 만들고 싶습니다.2 개의 nasm 소스 파일을 연결하는 방법

이 두 파일을 연결하는 방법이 있습니까?

prints.asm

:

os_return: 
    ;some code to return to os 
print_AnInt: 
    ;some code to output an int, including negatives - gets param from stack 
print_AChar: 
    ;some code to output a char - gets param from stack 

usingPrintTest.asm :이 아닌 실제 파일입니다

main: 
    push qword 'a' 
    call print_AChar ;gets this from prints.asm somehow (that's my question) 
    call os_return ;and this too.. 

주 ... 그들은 단지 내 문제 :

를 설명하는 데 사용하고

감사합니다.

답변

4

확실히 - 링커 만 사용하면됩니다. 각 파일을 어셈블하십시오.

nasm -o prints.o prints.asm 
nasm -o usingPrintTest.o usingPrintTest.asm 

그런 다음 출력 객체를 링커에 전달할 수 있습니다. 뭔가 같은 : 링커 드라이버가 실행하는 프로그램에 필요한 OS 라이브러리를 연결하는 몇 가지 재미 사업을 해결할 수 gcc를 사용

gcc -o myProgramName prints.o usingPrintTest.o 

.

extern print_Achar 
extern os_return 
+0

덕분에 많은 사람 : 당신은 extern 어셈블러 지시어를 사용합니다, nasm에 - 당신은 print_Acharos_return 다른 곳에서 정의 될 예정임을 알려 usingprintTest.asm에 몇 가지 선언을해야 할 수도 있습니다. 우리가 강렬한 인터넷 검색을 할 무렵에 우리는 당신이 그것을 얻기 전에 답을 두 번째로 생각해 냈습니다 : P – meltuhamy