上篇講了如何在編寫x64應用程序時加入x64匯編,這里來說說如何在編寫x64驅動時加入x64匯編。
一、在asm文件中單獨編寫功能函數
比如要實現一個64位的加法函數,原型如下:
ULONG64 myAdd(ULONG64 u1,ULONG64 u2);
那么源碼目錄(一般是sources文件所在的目錄)新建一個文件夾,名字叫做 amd64。
然后新建一個文件,寫入以下內容:
.CODE myAdd PROC add rcx,rdx mov rax,rcx ret myAdd ENDP END
將其保存為myAdd.asm,存放到剛才建立的amd64文件夾中。
並且在引用它的源文件中添加如下聲明:
EXTERN_C ULONG64 myAdd(ULONG64 u1,ULONG64 u2);
二、修改SOURCES文件
在SOURCES文件中加入一行:
AMD64_SOURCES = amd64\myAdd.asm #這是64位的,32位的可以改為I386_SOURCES
原來的SOURCES后面就不要添加這個文件了,然后就可以了!實測通過,夠簡單吧!
新加的這一項僅在編譯x64驅動時才起作用,在編譯x86驅動時會自動忽略,這樣即使切換編譯環境也不需要修改任何設置。
參考 :
http://bbs.pediy.com/showthread.php?p=1185534