上篇讲了如何在编写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 = amd64myAdd.asm #这是64位的,32位的可以改为I386_SOURCES
原来的SOURCES后面就不要添加这个文件了,然后就可以了!实测通过,够简单吧!
新加的这一项仅在编译x64驱动时才起作用,在编译x86驱动时会自动忽略,这样即使切换编译环境也不需要修改任何设置。
参考 :
http://bbs.pediy.com/showthread.php?p=1185534