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

TCP三次握手,四次挥手的全过程,为什么需要三次握手,四次挥手

文章目录TCP介绍三次握手四次挥手滑动窗口拥塞避免算法 TCP介绍 三次握手 四次挥手

热爱编程的菜鸟 1万+

光模块的封装工艺有哪些?

COB封装传统的单路10Gb/s或25Gb/s速率的光模块采用SFP封装将电芯片和TO封装的光收发组件焊接到PCB板上组成光模块。但对于40G及以上速率的高速光模块,受激光器速率限制(多为25G),主要通过多通道并行实现,如40G由4×10G实现,而100G则由4×25G实现。蝶形封装:壳体通常为长方体,结构及实现功能通常比较复杂,可以内置制冷器、热沉、陶瓷基块、芯片、热敏电阻、背光监控,并且可以支持所有以上部件的键合引线。BOX封装属于蝶形封装的一种,用于多通道并行封装。

WaytoICT- Explore ICT Technology, Build Your Tech Path 3807

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

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

平芜尽处是春山 438

车辆动力学从入门到进阶之路(传统篇)

新手如何入门车辆动力学开发领域,本文为您引路!

CrazyRabbit的博客 1万+

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

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

chenyijun的专栏 890

NVIDIA vGPU三种授权方式(个人玩家版)

NVIDIA vGPU三种方式搭建授权服务器(个人玩家版)

wstc2689784536的博客 8435

移花接木,玩转CANoe的几种扩展接口应用(五)——串口设备

近期看到粉丝朋友在CANoe自动化测试方面的关注度很大,今天就围绕这个做一个专题,总结一下以往项目上用过的几种CANoe扩展接口,分享出来希望对相关领域的网友有所帮助。本文是该专题的第五篇文章,主要讲解了串口设备的功能配置、连接方法、配置方法、调用方法,最后分析了这种扩展借口应用的特点和适用场景。

Mr.Cssust的博客 2369

Win32汇编基础教程

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

yangzhiyong77 182

Python爬虫实战:使用Scrapy+Playwright高效爬取全球专利数据库

本文将详细介绍如何使用Python最新技术栈(Scrapy+Playwright)构建一个高效的专利数据库爬虫系统。我们将从爬虫基础知识讲起,逐步深入到反爬应对策略、分布式爬虫架构以及数据存储方案,最终实现一个完整的专利数据采集系统。专利数据是技术创新领域的重要信息资源,包含技术描述、权利要求、申请人信息等宝贵数据。中国国家知识产权局(CNIPA)美国专利商标局(USPTO)欧洲专利局(EPO)世界知识产权组织(WIPO)

2201_76125261的博客 1382

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

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

小小码农 1万+

基于Vivado MIG IP核的DDR3读写实验(top_rom_ddr/ddr_top)

一、前言 关于Vivado MIG IP核详细配置可以参考我之前的文章:基于Vivado MIG IP核的DDR3控制器(DDR3_CONTROL) 关于MIG IP核的用户端的接口时序可以参考这篇文章:XILINX 的 MIG IP(非AXI4)接口时序以及控制 二、实验内容 本次实验的内容主要是通过MIG IP核向DDR3读写数据,DDR3的接口时序由ddr_top模块提供: ddr_top模块的数据来源是wr_fifo,wr_fifo的数据实际来自top_sd_photo模块(本实验仿真

耐心的小黑的博客 3027

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

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

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

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

csd3176的博客 156

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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

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

VitalityShow(网络通讯) 3455
上一篇: 怎么去掉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、付费专栏及课程。

余额充值