| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2150 人关注过本帖
标题:MASMPlus编译通不过?
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
结帖率:99.34%
收藏
已结贴  问题点数:20 回复次数:20 
MASMPlus编译通不过?
下面是王爽汇编第9章 实验9 目的根据材料编程 :在屏幕中间分别显示绿色,绿底红色
白底蓝色的字符串'Welcome to masm!'

程序代码如下 (参考答案):
程序代码:
assume cs:code, ds:data, es:table

data segment
     db 'Welcome to masm!'
data ends

table segment
     dw 4000 dup(0)
table ends

code segment

   start : mov ax, data
           mov ds, ax
           mov ax, 0b800h
           mov es, ax
          

           mov bx, 0
           mov si, 0
           mov cx, 16
      s1:  mov ax, [bx]
           mov es:[bx + 720h][si], ax
           mov al, 2
           mov es:[bx + 721h][si], al
           inc bx
           inc si        

           ;mov ax, 9
           ;int 21h
           loop s1
          

           mov bx, 0
           mov cx, 16
           mov si, 160
      s2:  mov ax, [bx]
           mov es:[bx + 720h][si], ax
           mov al, 36
           mov es:[bx + 721h][si], al
           inc bx
           inc si
           loop s2
          

           mov bx, 0
           mov cx, 16
           mov si, 320
      s3:  mov ax, [bx]
           mov es:[bx + 720h][si], ax
           mov al, 113
           mov es:[bx + 721h][si], al
           inc bx
           inc si
           loop s3
          

           mov ax, 4c00h
           int 21h         

code ends
end start
然后 我让他在cmd中用masm编译后能运行得到结果
图片附件: 游客没有浏览图片的权限,请 登录注册

但是在一样的程序在MASMPlus 下编译后有错误?
ml.exe /c /coff /nologo /Fo"D4.obj" "D:\masm\11\D4.asm"
 Assembling: D:\masm\11\D4.asm
D:\masm\11\D4.asm(13) : error A2004: symbol type conflict
D:\masm\11\D4.asm(56) : warning A4023: with /coff switch, leading underscore required for start address : start
我以为是mov es:[bx + 720h][si], al那个类型不匹配
就改成mov byte ptr es:[bx + 720h][si], al但是还是提示同样的错误 这个怎么弄?
求Z版 和 各位大牛帮解惑。

搜索更多相关主题的帖子: 编程 材料 参考答案 Welcome 字符串 
2012-08-10 20:30
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:20 
编译参数错了 16位程序加coff参数肯定是错的
2012-08-10 20:43
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 2楼 zklhp
那怎么办
这个编译参数在那里啊 我装后什么都没改就直接用的。

梅尚程荀
马谭杨奚







                                                       
2012-08-10 21:06
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用有容就大在2012-8-10 21:06:11的发言:

那怎么办
这个编译参数在那里啊 我装后什么都没改就直接用的。

https://bbs.bccn.net/thread-375027-1-1.html 今天刚回答过
2012-08-10 21:09
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
我建工程的时候选的是DOS那排的第一个 不对吗?
貌似上次你给我的那个例子就是那个吧 上面的程序框架(注释和初始代码)都差不多。
他的编译参数是系统自己定的? 那我要选那个好?

梅尚程荀
马谭杨奚







                                                       
2012-08-10 21:15
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用有容就大在2012-8-10 21:15:22的发言:

我建工程的时候选的是DOS那排的第一个 不对吗?
貌似上次你给我的那个例子就是那个吧 上面的程序框架(注释和初始代码)都差不多。
他的编译参数是系统自己定的? 那我要选那个好?

没明白你啥意思 如果你是用的MASMPlus 建立工程的时候选DOS开头的编译参数就错不了 如果命令行编译 对于Masm6及以上版本 要加Zm参数以编译16位代码 具体咋写你看MASMPlus工程里面用的是啥罢
2012-08-10 21:19
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
ml.exe /c /coff

一看你这里就明白了 coff是32位的编译参数 用于指定obj文件的格式
2012-08-10 21:21
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 6楼 zklhp
图片附件: 游客没有浏览图片的权限,请 登录注册

如图 我选的是红圈圈里那个DOS 建立的工程 为什么MASMPlus还编译不过?

梅尚程荀
马谭杨奚







                                                       
2012-08-10 21:45
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
啥错误啊
2012-08-10 21:47
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
还是那个错误啊
ml.exe /c /coff /nologo /Fo"D4.obj" "D:\masm\11\D4.asm"
Assembling: D:\masm\11\D4.asm
D:\masm\11\D4.asm(13) : error A2004: symbol type conflict
D:\masm\11\D4.asm(56) : warning A4023: with /coff switch, leading underscore required for start address : start

梅尚程荀
马谭杨奚







                                                       
2012-08-10 21:49
快速回复:MASMPlus编译通不过?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013881 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved