转一下PT的记录

来源:互联网 发布:金盾加密软件授权 编辑:程序博客网 时间:2024/05/29 04:16

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里面使用汇编编程了~~~

0 0
原创粉丝点击