隨筆-65  評論-68  文章-4  trackbacks-0

          今天使用nasm和gcc一起編譯了一個程序
          先使用nasm編譯一個asm文件為elf格式,匯編文件里面有全局global的_start和functionC,將來連接的時候用。其中還有extern用來表示外部C語言中的函數。

          我的程序的調用結構: _start(ASM)->funB(C)->funC(ASM)
          其中 ASM文件中:extern funB、global _start、global funC
          C文件中聲明:void funC();

          函數參數的傳遞:使用push來傳遞地址,而不是數值。最后參數的清理需要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 小爽 閱讀(2338) 評論(0)  編輯  收藏 所屬分類: 我的經驗我的操作系統
          主站蜘蛛池模板: 扶沟县| 临潭县| 澄江县| 兴安盟| 杭锦旗| 大竹县| 左贡县| 类乌齐县| 江孜县| 湄潭县| 西和县| 青川县| 宜春市| 万年县| 麻阳| 凤山县| 福州市| 凉城县| 道孚县| 鄂伦春自治旗| 林口县| 都兰县| 东至县| 太保市| 喀喇沁旗| 都匀市| 唐山市| 沈丘县| 眉山市| 蒲城县| 临洮县| 历史| 西藏| 若羌县| 青河县| 两当县| 陆良县| 武义县| 沭阳县| 西丰县| 乡城县|