2011-11-18 35 views
6

Tôi có tệp định nghĩa các hàm IO rất cơ bản và tôi muốn tạo một tệp khác sử dụng tệp này.Cách liên kết hai tệp nguồn nasm

Có cách nào để liên kết hai tệp này không?

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.. 

Lưu ý đây không phải là các tập tin thực tế ... Họ chỉ được sử dụng để giải thích vấn đề của tôi :)

Cảm ơn!

Trả lời

4

Chắc chắn - bạn chỉ cần sử dụng trình liên kết. Tập hợp từng tệp của bạn:

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

Sau đó, bạn có thể chuyển đối tượng đầu ra cho trình liên kết của mình. Một cái gì đó như:

gcc -o myProgramName prints.o usingPrintTest.o 

Sử dụng gcc như trình điều khiển mối liên kết có thể giải quyết một số doanh nghiệp vui nhộn với liên kết các thư viện hệ điều hành bạn cần cho chương trình của bạn để chạy. Bạn có thể cần phải thực hiện một số tờ khai trong usingprintTest.asm để cho nó biết rằng print_Acharos_return sẽ được định nghĩa ở đâu - trong nasm, bạn sẽ sử dụng các chỉ thị extern lắp ráp:

extern print_Achar 
extern os_return 
+0

Cảm ơn một người đàn ông rất nhiều. Bởi thời gian chúng tôi đã làm một số googling dữ dội, chúng tôi đã đưa ra câu trả lời SECONDS trước khi bạn nhận được nó: P – meltuhamy

Các vấn đề liên quan