Vs2010編譯64位匯編代碼,並在C++文件中調用


1、新建一個空項目

進入配置管理器,配置生成64位程序。

 

2、新建asm文件,並對文件進行配置

右鍵點擊test.asm文件,點擊屬性,彈出屬性頁面:

類型項下拉按鈕選擇自定義生成工具,點擊右下角應用按鈕,然后會在左邊新增一個自定義生產工具的選項,點擊該選項下的常規選項。

修改命令行和輸出項如下:

命令行:ml64 /Fo $(IntDir)%(fileName).obj /c %(fileName).asm

輸出:$(IntDir)%(fileName).obj

點擊應用:

 

3、在asm文件中定義函數,並在c文件中調用

運行結果如下:

 

4、一些值得注意的問題

  1、項目名、asm文件名、項目路徑中不要包含中文字符,否則在編譯asm文件時會報錯誤字符。

  2、注意32位匯編和64位匯編在函數調用是的參數傳遞問題。在64位中,函數調用前4個參數從左到右依次是rcx,rdx,r8,r9這4個寄存器來傳遞,剩下的參數從左到右依次入棧。

  3、注意extern關鍵字。

 

 5、參考

  1、https://www.cnblogs.com/shines77/p/3788514.html

  2、http://blog.csdn.net/woainishifu/article/details/54017550

  3、https://blog.csdn.net/robin__chou/article/details/50275061

  4、https://www.cnblogs.com/achillis/p/5369658.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM