WIN32汇编程序的编译方法,环境配置,make的简单应用

win32汇编程序运行方法 --MASM32、makefile、makeit 最近刚学习win32汇编程序,用的工具是MASM32,MASM32安装包不会对注册表进行写操作,安装后,它会在桌面创建qeditor.exe的快捷方式,qeditor是MASM32的IDE环境,我们要做的事就是对这个IDE进行设置。如何设置咱们之后再讲(见后文附录),假设环境设置好,下面选择以下方式之一来执行程序。 先把程序涉及文件和图片贴出来 a.)  Test.ASM  源文件 阅读详情
 

主题:WIN32汇编程序的编译方法,环境配置,make的简单应用

作者:gnuser

url:    http://bestbbs.5d6d.com


学习一门语言最开始最好弄懂一个简单例子,
而往往很多资料忽视了这一点,让初学者还没入门就卡死在门外.

网上的资料也不太标准,以至于象我这种初学者摸索好久才有所得.

现在开始写笔记吧,废话不多说了,时间宝贵.

工具:masm,link,make

这些工具都很好找,网上资料就能让你顺心.(实在找不到,我给)

安装好masm后
配置环境:

建立一个批处理文件:var.bat

编辑以下内容:

@echo off
set include=c:/masm32/Include
set lib=c:/masm32/lib
set path=c:/masm32/bin;%path%
set include=c:/masm32/Include;C:/Program Files/Microsoft Visual Studio/VC98/Include;C:/Program Files/Microsoft Visual Studio/VC98/MFC/Include
echo on

看清楚路径是否正确.

然后进入ms-dos运行之,输入ml
如出现一些说明信息,OK!

make不是自带的哦,你找到后放到masm32/bin目录下就行了.

现在就可以编译程序了..大门就此打开.不难吧!!


第一个程序,来个最简单的:

.386
.model flat, stdcall
option casemap :none   ; case sensitive

include                windows.inc
include         user32.inc
include                kernel32.inc
includelib        kernel32.lib
includelib        user32.lib
.data

szCaption        db        'Win32汇编例子',0
szText                db        'Win32汇编,Simple and powerful!',0

.code

start :
        invoke        MessageBox,NULL,addr szText,addr szCaption,MB_OK
        invoke        ExitProcess,NULL

end start

我不多解释程序的含义了,就算没学过WIN32汇编的,他也应该能大概看懂,细节自己找资料,
这里我只讲怎么编译.

保存为first.asm文件.

进入刚才的ms-dos界面,运行var.bat后

Ml /c /coff first.asm
Link /SUBSYSTEM:WINDOWS first.obj

OK,就生成了可执行文件了哦.执行之.知道程序什么意思了吧.




make的简单应用:

用好make对于一个编写大型程序的程序员来说是必须的,他能方便的构建整个程序的编译过程,还有.......(自己看去吧)

这里我们直接应用,要具体了解资料很多的.(就是因为资料对介绍还行,对应用不敢恭维的现状我才写的此文)

编写makefile,注意没有后缀.

NAME = first
OBJS = $(NAME).obj
RES = $(NAME).res
$(NAME).exe: $(OBJS) $(RES)
(注意这行需要TAB键开头)        Link /DEBUG /SUBSYSTEM:WINDOWS $(OBJS) $(RES)
$(RES): $(NAME).rc
(这行也是,谨记!)        Rc $(NAME).rc
.asm.obj:
        Ml /c /coff $(NAME).asm

这里我们没有资源文件,所以可以不要rc,res等相关语句.

修改如下:

NAME = first
OBJS = $(NAME).obj

$(NAME).exe: $(OBJS)
        Link /DEBUG /SUBSYSTEM:WINDOWS $(OBJS)

.asm.obj:
        Ml /c /coff $(NAME).asm

回到刚才的ms-dos界面,

执行make命令,


如没有错误就会达到手动编译,连接的效果了,如果有错误,还会提醒你哪儿错了,方便啊!!!

不会make也没关系,不过要做高手嘛,就要多学点咯.(我只是想方便一点,其实菜鸟)


全文完,希望与大家分享学习经验,以至提高效率!!
鱼c win32汇编 第二章2.2 编译链接 Win32可执行文件的开发过程: 1.用文本编辑器写好,汇编源文件.asm,预定头文件.inc,API声明头文件.inc,把这三个用编译器编译成.obj 2.用文本编辑器写好,资源脚本文件.rc,编译成资源文件.res 3.导入库文件.lib 4.用链接器链接3个的成果,生成win32可执行文件.exe 演示用MASM32 SDK软件包: 1.由Steve Hutchesson这个位大... 阅读详情

相关推荐

32位汇编环境配置:Windows环境下开发

win32汇编语言环境配置

m0_74471793的博客 508

win32中的makefile文件

     makefile文件,就是让你能够设定二个文件相比——比较其产生日期,由其来决定比较结果来决定要不要做些你指定的操作。generic.res :generic.rc generic.hrc generic.rc 意思就是拿冒号()左边的generic.res 和冒号右边的generic.rc generic.h的文件的日期进行比较,只要右边任一文件比左边的文件更新,就执行

xiaoxuehua的专栏 821

win32汇编语言编译器

基于windows32的x86汇编语言编译器

编译一个汇编程序怎么居然折腾我如此....

编写一个最简单的win32汇编程序,就一个MessageBox弹出,程序开始如下(first.asm):           .386 .model flat,stdcall option casemap:none include windows.inc include user32.inc includelib user32.lib include kernel32.inc in...

weixin_34292287的博客 314

CMake 3.6.2 (Windows 32位) 官方安装版

跨平台构建工具 CMake 3.6.2。安装工具与 CMake 3.4 或更低版本不兼容。如果安装了 CMake 3.4 或更低版本,需要先卸载旧版,再安装该版本。

make-4.2.1-with-guile-w32-bin.zip

git的bash实际上也就是一个mingw,是可以支持部分linux指令的,但是只有少部分。在编译代码的时候经常会使用make命令反而在bash下默认是不支持的。 把该文件进行解压 把解压出来的文件全部拷贝的git的安装目录下: . \Program Files\Git\mingw64\ ,把文件夹进行合并,如果跳出来需要替换的文件要选择不替换 这样在git bash窗口下就可以执行make了(编译的时候编译器还是需要另外安装的)

MASM系列编译器编译win32汇编程序步骤

1.MASM编译器介绍 MASM是微软推出的汇编编译器。他的版本从低到高经历了很多次的升级(微软通病,升级补丁多如牛毛).每次升级除了例行的错误修正外都增加了一些新的功能,以至于到最后高版本和低版本的语法和功能相差很多,向下兼容性也不好。低版本的MASM固然无法编译高版本的源程序,但高版本的MASM也可能无法正常编译低版本的源程序,如MASM4.0写的源程序撑场无法在MASM6.x上编译成功。在...

paradox_1_0的博客 1810

GnuWin32-Make3.81

GnuWin32提供工具解析makefile,解决GitBash运行make命令,提示bash: make: command not found的问题

Win32汇编环境配置

Win32 汇编环境配置 1. 下载MASM32 http://www.masm32.com/masmdl.htm 2. 安装(例如安装在C:\MASM32) 3. 编译下面例子 ; 使用 nmake 或下列命令进行编译和链接: ; ml /c /coff Hello.asm ; Link /subsystem:windows Hello.obj ;>>>>>>>>>>>>>>>

cay22的专栏 1062

Ansys Maxwell磁场仿真入门:无线传能线圈自感与互感计算全流程

本文详细介绍了使用Ansys Maxwell进行无线充电线圈磁场仿真的全流程,包括模型建立、求解器设置、电感参数提取及优化策略。通过实战案例,帮助工程师掌握线圈自感与互感计算技巧,提升无线充电系统设计效率与精度。重点解析了Maxwell在磁场仿真中的关键应用,适用于电磁场仿真初学者和进阶用户。

weixin_29047545的博客 438

MaxEnt软件的下载与安装

1、下载网站:http://lucky-boy.ys168.com/ (这是之前在网上搜到的,里面有许多软件安装包,感谢网页主的资源共享,违权必删)

weixin_42191203的博客 2万+

32位汇编:实验7Win32汇编程序的编程环境

本文介绍了MASM32汇编开发环境的配置与使用。主要内容包括:1)将MASM32解压到D盘并设置环境变量;2)编写测试程序Test.asm和Makefile文件;3)使用nmake命令编译运行程序;4)解决了三个常见问题:nmake命令不可用(需确认路径)、头文件兼容性问题(需使用MASM32自带工具)和字符编码异常(需设置UTF-8编码)。文章提供了从环境搭建到编译运行的完整流程,并针对常见错误给出了解决方案。

平芜尽处是春山 438

Windsurf 入门指南:从安装到实战(免费AI IDE新选择)

本文是Windsurf AI IDE的详细入门指南,涵盖从下载安装到核心功能实战的全过程。通过对比分析,文章指出Windsurf凭借其免费、小白友好的特性及强大的上下文感知能力,成为学习编程和提升开发效率的新选择,特别适合零基础开发者和寻求高效AI编程工具的开发者。

weixin_29237635的博客 854

window XP环境下配置VC6.0的Win32汇编语言开发环境

在Win32汇编语言开发环境时,虽然用的是masm32软件开发包,使用nmake编译就可以,但是不能调试,为了能方便调试Win32汇编语言,采用VC6.0开发工具就比较方便,即可以兼容旧的操作系统dll,资源占用又比较小,因此本篇介绍在VC6.0的Win32开发环境的配置。

chenyijun的专栏 890

告别复杂配置:利用原生DDNS实现IPv6直连群晖的极简指南

本文详细介绍了如何利用原生DDNS实现IPv6直连群晖NAS的极简方法,告别复杂配置。从检查IPv6网络环境、路由器防火墙设置到群晖DDNS配置,一步步指导用户完成设置,并分享移动网络下的使用体验和安全防护建议,帮助用户轻松实现远程访问。

weixin_30918633的博客 413

VMFS数据存储(datastore)丢失后恢复步骤

vmfs datastore恢复步骤

jetliu05的博客 3267

Win32汇编基础教程

Win32汇编教程之一Win32汇编的环境和基础1.32位环境简介在Dos下编汇编程序,我们可以管理系统的所有资源,我们可以改动系统中所有的内存,如自己改动内存控制块来分配内存,自己修改中断向量表来截获中断等,对其他操作也是如此,如我们对键盘端口直接操作就可以把键盘屏蔽掉,可以这样来描述Dos系统:系统只有一个特权级别,在编程上讲,任何程序和操作系统都是同级的,所以在Dos下,一个编得不好的程序会...

yangzhiyong77 182

保姆级教程 | MS构建三层石墨后转成LAMMPS的data文件

喜欢的话记得一键三连~

baguette的博客 2951

在Linux环境下(Ubuntu)编写MASM汇编程序

转载自:http://blog.renren.com/share/333499439/14661346767 作者:丁枣枣 名词解释: MASM: MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm是Windows下开发汇编的利器。它与windows平台的磨合程

小小码农 1万+

【Proteus仿真】基于AT89C51单片机的单片机双向通信

本文介绍了基于AT89C51单片机实现双向通信的系统设计。系统采用MAX232芯片实现TTL与RS-232电平转换,通过CONN-D9F接口建立串行通信连接。甲机程序通过按键控制发送不同指令字符,同时接收乙机数据驱动数码管显示;乙机程序根据接收指令控制LED显示状态,并可发送0-10数字至甲机。文中详细说明了MAX232电平转换原理、DB9接口定义,以及完整的单片机控制程序代码,包括串口初始化、数据收发处理等关键功能实现,为嵌入式系统串口通信开发提供了实用参考方案。

XU157303764的博客 1094

通信原理 | 通俗理解 | 因子图、消息传递以及它们之间的关系

在算法迭代过程中,通过反复更新这些消息,直到收敛,最终可以得到每个变量的边缘概率分布或最有可能的整体状态。算法通过因子图中的节点反复交换消息,直到找到最优解或所有消息稳定下来,从而解决了比如聚会日期这样的优化问题。在实际应用中,这种方法可以用来解决更复杂的问题,比如图像识别、语音识别和机器学习中的其他问题。,特别是在处理概率模型和执行概率推断时,因子图提供了一个强大的工具。(比如朋友的空闲时间和地点的可用性),并且你希望尽可能让所有人满意。在真正的因子图和消息传递算法中,这个过程被数学化和形式化。

若北辰 1195

masm32环境配置

软件: Windows7-32bit visual c++6.0 Masm32 sdk 11 安装: 0x00 ||  下载Masm sdk 11并安装,下载路径:http://www.masm32.com/ 0x01 ||  安装visual c++,自行百度,最好是英文版 配置: 0x02 ||  将E:\Visual C++ 6.0\VC6\VC98\Bin目录下的NMAKE...

weixin_30588907的博客 896

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Win32汇编的环境和基础 (转)

Win32汇编的环境和基础 (转)[@more@](罗云彬)1.32位环境简介在Dos下编汇编程序,我们可以管理系统的所有资源,我们可以改动系统中所有的内存,如自己改动内存控制块来分配内存,自己修改中断向量表来截获中断等,对其他...

csd3176的博客 156

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

windows下vc6.0下的OpeSSL编译过程中的问题

用vc6.0来编译openssl所需要注意的问题

VitalityShow(网络通讯) 3455

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: 怎么去掉telnet的ntml验证
下一篇: VC 预编译找不到头文件
gnuser
博客等级 码龄20年 35粉丝 141原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值