今天使用nasm和gcc一起編譯了一個(gè)程序
先使用nasm編譯一個(gè)asm文件為elf格式,匯編文件里面有全局global的_start和functionC,將來連接的時(shí)候用。其中還有extern用來表示外部C語言中的函數(shù)。
我的程序的調(diào)用結(jié)構(gòu): _start(ASM)->funB(C)->funC(ASM)
其中 ASM文件中:extern funB、global _start、global funC
C文件中聲明:void funC();
函數(shù)參數(shù)的傳遞:使用push來傳遞地址,而不是數(shù)值。最后參數(shù)的清理需要caller來自己解決。
需要的命令行:
nasm -f elf -o dest.o?src.asm
gcc -c -o dest2.o src2.c?????????? (-c 的意思是僅僅compile)
ld -s -o final.o dest.o dest1.o
posted on 2007-01-10 22:06
小爽 閱讀(2337)
評(píng)論(0) 編輯 收藏 所屬分類:
我的經(jīng)驗(yàn) 、
我的操作系統(tǒng)