Assembly Language!!!

本文分享了作者首次使用MASM进行汇编编程的经历,详细介绍了配置开发环境的过程,并通过一个示例程序演示了从编写代码到生成可执行文件的全部步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GT这学期有汇编语言的课程,第一次接触这么神秘的东东感到很兴奋。所谓“工欲善其事,必先利其器”,最近试了几个汇编的编译环境用着都感觉不太顺手,在无奈和郁闷之中,突然灵光一闪——因为经常写ACM这种小巧程序的关系,我用notepad++加上NppExec插件(用来集成控制台),再加上WinGW作为DOS编译器为源码提供编译生成功能,小巧灵便,写起一两百行左右代码的程序真是无往而不利——那么汇编语言不也可以这样么?好吧我承认我是看中notepad++有汇编语言的高亮代码……

 

于是开始了尝试,下载好MASM,第一步是配置环境变量(环境变量是可以不配置的,但是会给你的编译带来一些限制,比如一定要转到编译器所在的目录下,而Windows的Path变量可以给那些找不到执行路径的命令提供一个选择)

安装我的安装路径,主要有这几个,这个就是提供编译器的根目录啦:

Path中加入;E:/Masm6.15; E:/Masm6.15/BIN

下面这几个我不太知道具体干嘛的,没配置的时候也能正常编译,既然看到资料里要配置就一起写上吧:

ASMEX       E:/Masm6.15/SAMPLES

HELPFILES E:/Masm6.15/HELP                                (应该是命令行的帮助文件,<...> /help)

INCLUDE    E:/Masm6.15/INCLUDE 

INIT            E:/Masm6.15/INIT

LIB             E:/Masm6.15/LIB

 

至此,MASM根目录下的每个子文件夹也都配置了一个对应的环境变量

 

接着开始实战,找了个Sample文件

 
.MODEL SMALL

.386

.DATA
 
 Msg DB 'Hello, world!', 0

.CODE

Start:
 MOV AX,@data
 MOV DS,AX
 MOV DX,OFFSET Msg

 MOV AH,9
 INT 21h

 MOV  AH,4ch       ;DOS terminate program function
 INT  21h                   

END Start

抠门的课本只给了最简单的几个命令行

ml /c /Coff <*.asm>                  这个,一开始没弄懂ml神马意思,还想到邪恶的地方去了,其实ml是编译和连接,是masm和link两个命令的集合,/c参数用来指定编译而不调试

masm <*.asm>                         编译生成obj文件

link <*.obj>                              连接生成exe文件

 

这样一个win32的可执行文件就出来了,表示很happy~

 

不过也发现一点问题,虽然现在可以编译放在任何目录下的asm文件了,但是生成的obj和exe依然在masm的根目录下,这个编译器一定是有什么语法是用来指定生成位置的,不过试来试去都不对,而且现在手头关于masm的资料太少了,连网上都搜不到神马全面一点介绍的,我看今天还是就到这儿吧,明天去图书馆找本书来好好研究一下才行~!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值