怎么编译连接16位的汇编程序

开始用的masm32的ml和link改了便宜选项,编译能通过但不能连接后来下了masm6.1还是只能编译不能连接诶,在32位机器上不能写16位程序吗如果是64位呢?... 开始用的masm32的ml和link改了 便宜选项,编译能通过但不能连接后来下了masm6.1还是只能编译不能连接诶,在32位机器上不能写16位程序吗如果是64位呢? 展开
 我来答
匿名用户
2013-07-02
展开全部
如果是写16位汇编,下载masm5.0(微软的16位宏汇编包),百度一下就有下载!使用masm.exe编译16位汇编源代码生成*.obj文件,在用link.exe连接生成16位可执行文件*.exe。在32位机器上是可以写16位程序的,因为x86的计算机体系就是为了兼容低阶程序而存在的,计算机在启动的时候就是以实模式(可以简单理解为16位的)启动的,之后操作系统才使用机器指令转向32位保护模式(因为这样从硬件级支持多任务)。编写16位、32位、以及64位汇编程序只要下载安装相应的汇编包就可以了。
pig05121
推荐于2016-10-26 · TA获得超过599个赞
知道小有建树答主
回答量:234
采纳率:50%
帮助的人:137万
展开全部
要看用的是masm的哪个版本,常用的有masm5、masm6、masm8。
masm5将编译和连接分开,当masm.exe、link.exe、cc.asm(这个是要编译的文件)在同一个文件夹中时。
当前目录中,在命令行下,输入"masm cc;"命令,可完成编译。
然后,当前目录中,在命令行下,输入"link cc;"命令,可完成连接。
masm6及以后,可用ml这个命令。
当前目录中,在命令行下,输入"ml cc.asm"命令,可完成编译和连接。
在masm中,编译是针对源文件的,源文件需为以".asm"为后缀的文本文件。编译产生的是目标文件。而连接是针对目标文件的,目标文件需为编译时产生的,以“.obj”为后缀的二进制文件。连接产生的是以".exe"为后缀的可执行文件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pardream941026
2015-06-12 · TA获得超过8217个赞
知道大有可为答主
回答量:4602
采纳率:89%
帮助的人:1333万
展开全部
16位程序需要在16位的环境中编译运行,目前16位环境一般使用的DOS模拟器。
现在比较好用的,emu8086这个程序,集编辑、编译、模拟运行、调试一体,比较好用,并且算带了不少例子。
另外作法:使用dosbox这个DOS模拟器,在其中安装微软的masm,或者borland的tasm,再安装编辑器(vim, edit等)编辑源程序,(或者在windows中使用文本编辑软件编辑),再用masm/tasm进行编译。调试大多使用debug
masm编译命令 (如源程序名为 abc.asm)
masm abc.asm
(按提示回车)
生成.obj文件后,
link abc.obj
正确的话,则生成abc.exe

Tasm则是:
Tasm abc.asm
tlink abc.obj
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式