x64里由于无法内联汇编语句,所以必须专门写asm文件来编译汇编语言,
先总结一下R0里面如何编译:
1. 下载MASM64编译器(Tesla.Angela修改版),下载地址:http://good.gd/1399004.htm
然后写一个编译的bat文件(假设装在C盘下面,项目在D:\Devlopment\test,asm文件叫x64.asm)
@Set ProgName=64bit
@Color 0E
@Title %ProgName%
@call C:\Masm64\Env.Cmd
@set Directory="D:\Devlopment\test"
@Set SrcName=x64
@cd %Directory%
@del "%Directory%\%SrcName%.obj"
@C:\Masm64\BIN\x64\ml64 /c "%Directory%\%SrcName%.asm"
@pause
2.修改sources文件
添加 AMD64_SOURCES=x64.asm和TARGETLIBS = x64.obj这两行
3.最后修改一下mybuild.bat文件
ddkbuild.cmd -WLHX64 chk . -cZ -WDF,用64位来编译
下面是R3的工程编译ASM文件,我本来想在设定里面搞定的,无奈一直无法成功,只好直接修改工程文件
1. VS2008的工程文件:
修改**.PowerTool64.vcproj
添加一个Filter节点,内容如下
<Filter Name="ASM" >
<FileRelativePath=".\ASM\x64.asm">
<FileConfiguration Name="Release|x64">
<Tool Name="VCCustomBuildTool"
CommandLine="cd "$(IntDir)" ml64.exe /D_WIN32 /c /Cx "$(InputPath)""
Outputs="$(IntDir)\$(InputName).obj"
/>
</FileConfiguration>
</File>
</Filter>
2. VS2010的工程,需要修改两个文件,首先是***.vcxproj
添加一个ItemGroup
<ItemGroup>
<CustomBuild Include=".\ASM\x64.asm">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">cd "$(IntDir)"
ml64.exe /D_WIN32 /c /Cx "%(FullPath)"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename).obj;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">cd "$(IntDir)"
ml64.exe /D_WIN32 /c /Cx "%(FullPath)"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename).obj;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
然后修改***.vcxproj.filters,添加如下内容:
<ItemGroup>
<CustomBuild Include=".\ASM\x64.asm">
<Filter>Source Files\ASM</Filter>
</CustomBuild>
</ItemGroup>
这样,就可以在x64里面使用汇编编程了~~~