【Win32汇编】编译环境配置
开始学习【Win32汇编】,编译过程较为繁琐,做个记录。
使用 MASM32 提供的 ml.exe 和 link.exe,以及 VS2013 中的 nmake.exe 和资源编辑器。
ml.exe:
ml [选项] 文件列表 [/link]

link.exe:
link [选项] 文件列表

nmake.exe:
nmake [选项] [描述文件名] [宏定义] [目标文件]
/f 描述文件名:指定其他的描述文件名,而不是默认的 makefile
宏定义:指定新的定义,覆盖描述文件,例:NAME = xxx
目标文件:指定最终生成的文件,覆盖描述文件,例:xxx.obj

巧用环境变量和批处理:
使用 ml 和 link 已经可以完成编译,但频繁的输入大量命令实在浪费时间,创建 makefile 文件,配合 nmake 可提升效率。
为便于管理工程文件,通常使用单独的工程目录,导致编译时需要输入大量的绝对路径,非常繁琐,解决办法是使用环境变量。
Init.bat:
@echo off
set include=x:\masm32\include
set lib=x:\masm32\lib
set path=x:\masm32\bin;%path%
cd ppath\%1
@echo on
设置 include, lib, path 这三个环境变量,就可以在编译时键入相对路径。
[x:] 替换为MASM32所在盘符,[ppath] 替换为工程目录的绝对路径。
复制 nmake.exe 和 cmd.exe 到 bin 目录下,打开 cmd 输入 "Init 工程名",会自动切换至该工程目录,继续输入 nmake ,完成编译。
版权
图片取自《windows环境下32位汇编语言程序设计》
保留版权,欢迎转载,请注明【转载自:Chameleon_Mine】
【Win32汇编】编译环境配置的更多相关文章
- linux内核编译环境配置
linux内核编译环境配置 如果不是编译内核,只需要安装与内核相匹配的kernel-devel开发包即可.即是/lib/modules/`uname -r`/build -> /usr/src/ ...
- Syslinux编译环境配置简要步骤
由于毕业设计要做一个加密U盘的LINUX,需要修改一sysylinux引导程序,在网上很少有关于syslinux编译环境配置的文章,在此简要总结一下,发出来共享. 需要的软件: 1. vmware ...
- Android编译环境配置
Android编译环境配置 网上关于Android编译环境配置的整理资料有不少,经整理亲测后,希望能给需要的亲们提供帮助. 主要分为四步: 1.安装JDK(Java Standard Edition ...
- Berkeley DB (VC6.0 编译环境配置)
操作系统:winxp VC环境:VC6.0 必需文件:Berkeley DB安装文件(db-.msi) 下载地址:http://www.oracle.com/technology/software/p ...
- OpenCL编译环境配置(VS+Nvidia)
英伟达的显卡首先要下载安装CUDA开发包,可以参考这里的步骤: VS2015编译环境下CUDA安装配置 安装好CUDA之后,OpenCL的配置就已经完成了80%了,剩下的工作就是把OpenCL的路 ...
- mac OS(OS X)的OI编译环境配置指南
编译环境:gdb+Atom 如何安装gdb: http://logic0.blog.163.com/blog/static/1889281462014183271283/ Atom下载地址: ht ...
- Android编译环境配置(Ubuntu 14.04)
常识:编译Android源代码需要在Linux系统环境下进行... 在Linux中,开发Android环境包括以下需求:Git.repo.JDK(现在一般使用OpenJDK)等:其中,Git用于下载源 ...
- Android代码编译环境配置 “Gerrit和Git环境配置”
Gerrit和Git环境配置可以参考<git&gerrit操作指导> 步骤1. 先在Gerrit中创建新的账户: 步骤2. 在新的客户端上生成密钥(可以使用的是生成的公钥): 步骤 ...
- windows下hla编译环境配置(转)_1
原文地址:http://blog.chinaunix.net/uid-20548989-id-1667169.html HLA简介 HLA,英文"High Level Ass ...
随机推荐
- EOJ Monthly 2018.4 (E.小迷妹在哪儿(贪心&排序&背包)
ultmaster 男神和小迷妹们玩起了捉迷藏的游戏. 小迷妹们都希望自己被 ultmaster 男神发现,因此她们都把自己位置告诉了 ultmaster 男神,因此 ultmaster 男神知道了自 ...
- cocos2dx常见32种场景切换动画
bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !CCLayer::init( ...
- JavaScript-Tool:Ext JS
ylbtech-JavaScript-Tool:Ext JS extjs是一种软件.自动生成行号,支持checkbox全选,动态选择显示哪些列,支持本地以及远程分页,可以对单元格按照自己的想法进行渲染 ...
- ie7 ie8 使用border模拟圆
border-radius 属性ie8+才支持,ie7 ie8 下的圆角就可以使用border进行模拟:(移动端都支持) 我们平常使用border-style一般都是solid实线,其他常用的还有da ...
- linux C之access函数(转载)
转自:http://blog.sina.com.cn/s/blog_6a1837e90100uh5d.html access():判断是否具有存取文件的权限 相关函数 stat,open,chm ...
- 位运算【C++学习(计蒜客)】
C++提供了位运算操作符,使程序可以直接对内存进行操作.C++的这个特色大大提高了C++程序的执行能力.例如使用位操作运算可以将一个存储单位中的各个二进制位左移或右移一位,也可以将一个存储单位中所有的 ...
- 了解Web Uploader
1.简介WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件.在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流 ...
- 7天学完Java基础之5/7
接口 接口就是一种公共的规范标准 是一种引用数据类型 定义格式 public interface 接口名称{} java7 中接口可以包含常量,抽象方法:Java8 还可以额外包含默认方法,静态方法: ...
- Nginx系列篇三:linux中Nginx+keepalived做一个高可用的主从配置
建议:先阅读搭建Nginx负载均衡之后再看此篇 备注: Nginx+keepalived的高可用有两种方式 一.主从配置 二.双主热备配置[下一篇] 准备: 标配四台服务器 Master:192.16 ...
- 51Nod 1174 区间中最大的数(RMQ)
#include <iostream> #include <algorithm> #include <cstring> using namespace std; + ...