2024年3月19日发(作者:)
如何用VC6.0集成 开发环境来构建MASM32汇编的编程环境(原创)
作者:maxzhou88(周哥)
开发高性能的程序少不了用汇编编程,限于C语言中内嵌汇编语言的局限(如在C代码
中混合汇编语言编程时,很难实现跳表),一些代码必须书写在独立的 汇编源文件中。遗憾
的是,在调试时,只能看到裸的汇编码,而不能到懂标号,变量等,现在能这样C与ASM
混合编程就方便多了。
编程环境:VC6.0,Masm32v8
优点:
[1] 使用VC6.0集成开发环境可以利用其强大的Debug功能来实现源代码级调试(Source
Code Debug),(看变量、设置断点、查看MASM32的高级命令展开......)
[2] 使用VC6.0的资源编辑器,可视化编辑资源。
[3] 实现C/C++与ASM的混合编程。
[4] 在窗口下比在CMD下工作符合一般人的习惯,再也不需要写makefile文件或
文件了。
方法:
[1] 安装VC6.0,这个我就说了,大家都会的哦,一般我将它安装在 C:Program Files Microsoft
Visual Studio。
[2] 安装,一般我将它安装在 D:MASM32 下。
[3] 将Win32ASM(masm32)中的和拷贝到C:Program Files Microsoft Visual
StudioVC98Bin
[4] 使用VC6.0新建一个空工程,如:hello(类型为:win32 console、win32 application、DLL
等均可)。
[5] 把汇编和资源文件拷至新建工程目录下(,),并把这些文件加入工程中
(将*.asm添加到Source Files, 将*.rc添加到Resource Files)。
[6] 配置IDE(这就配置一次就搞定):在VC的菜单tools/option…/paths(include files)中添加
一个路径d:MASM32INCLUDE
[7] 配置工程(每个工程都要这样配置):打开工程设置(project settings),点击*.asm文件
选择(Custom Build),
命令中加上: ml /c /coff /Zi /Fo$(TargetDir)$(InputName).obj
$(InputPath)
输出中加上: $(TargetDir)$(InputName).obj
注意选Settings for: Win32 Debug 和 Win32 release,将上面的两条都加上,而且每个
*.ASM文件(如有多个ASM时)都这样设置。
[8] 点击VC的编译(build)就可以运行了哦。
至此就可以使用VC调试器源码级调试汇编程序了,可以设置断点,察看变量、内存、
寄存器等,masm出现语法错误时可以双击output window中的错误行定位到程序中的指定
行。
为了不在debug和release目录中产生超大的预编译头文件,在工程设置(project
settings)中的C/C++ -> Precompiled Headers的选项上选择"不使用预编译头",其实就现在的
电脑而言,不使用预编译头也能快速地编译C代码的哦.
资源编译/编辑器蛮好用的.只是还有个问题我也没有搞懂:VC6.0的资源编译/编辑器不支
持16进制的资源ID,非要用10进制的,我是用两种方法解决 的:一是将资源文件*.rc中的ID
改成10进制,这样就可以编辑修改了;二是直接用老罗书中的rc文件导入,但在VC6.0中
不要打开编辑它就可以了. 有人能告诉我VC6.0的资源编辑器用16进制ID的方法嘛,可能
这很简单,我没有去深究罢了.
有空来踩踩我的空间哦:/maxzhou88
该文在我的百度空间:/maxzhou88/blog/item
/
Win32 C++/ASM 混合编程的Demo下载: /pc
我在学老罗的MASM32程序时都是象这样在VC6.0的集成环境下工作的,他书中的例子
我基本都试验过,比在DOS(CMD窗口)下方便多了,也不要什 么makefile文件,建个
proj项目就搞定,最重要的是用VC的资源编辑器来编辑资源比原先手工编辑方便多了,如
果有什么问题欢迎大家交流哦!
周哥(maxzhou88) 写于 2009-01-21
为了方便大家配置VC6.0 ,我在这里贴两张图:
这是配置项目中每个ASM文件的Custom Build 注意:Debug 和 Release 版本都要设置)


发布评论