masm32 9.0 编译、连接问题

masm32 9.0 编译连接问题解决
在使用masm32 9.0的qeditor编写了一个简单的dos程序后,遇到编译错误A2006:undefined symbol : DGROUP。解决方法是为dos程序指定编译器选项/omf。然而,之后在连接阶段使用link hello.obj时,又出现了Segment reference in fixup record和LINK1123错误。通过发现linker有两个版本(link.exe用于Dos程序,link16.exe用于win32程序),更换正确的linker解决了问题。
部署运行你感兴趣的模型镜像

我使用masm32 9.0 的qeditor编写了下面小程序:

 

.model small

.stack 200h

.data
      strMsg db 'hello world!',13,10,'$'

 

.code 
start:
   mov ax, @data
   mov ds, ax
 
   mov dx, offset strMsg

   mov ah, 09H
   int 21h
 
   mov  ah, 4ch
   int 21h
end start
 

点击 Projects-->Assemble ASM file 报错:

error A2006: undefined symbol : DGROUP

 

解决:

masm编译器ml.exe有两个选项
/coff 和 /omf
dos程序 要指定参数 /omf

win32程序 要指定 /coff

masm 9.0 默认的参数是/coff。

 

连接时使用命令 link hello.obj。又报错,

LINK:error:Segment reference in fixup record

fatal error LINK1123:

 

真不容易!

解决:原来linker有两个版本。在bin目录下有两个文件:

link.exe:        Ms Incremental Linker,   连接Dos程序;

link16.exe:    Ms Segmented Executable Linker, 连接win32程序。

 

 

您可能感兴趣的与本文相关的镜像

EmotiVoice

EmotiVoice

AI应用

EmotiVoice是由网易有道AI算法团队开源的一块国产TTS语音合成引擎,支持中英文双语,包含2000多种不同的音色,以及特色的情感合成功能,支持合成包含快乐、兴奋、悲伤、愤怒等广泛情感的语音。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值