中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 汇编语言编译器使用2 上一主题 | 下一主题
chrise
初级用户





积分 88
发帖 32
注册 2010-3-27
状态 离线
『楼 主』:  汇编语言编译器使用2

题目是把buff1中的数据传到buff2
源程序如下:
DSEG SEGMENT
buff1 db 0,1,2,3,4,5,6,7,8,9,
        db 11,12,13,14,15,16,17,18,19,20
buff2 db 20 dup(?)

DSEG ENDS


CSEG SEGMENT
        assume  cs:CSEG, ds:DSEG


       
MAIN PROC FAR          ;主程序入口

        mov ax, dseg
        mov ds, ax
        mov ax,eseg
        mov es, ax
                mov  cx,20
                lea si,buff1
        lea di,buff2
      cycle:mov al,[si]
                 mov [di],al
                 inc si
                 inc di
        loop cycle
                 mov ax, 4c00h  ;程序结束,返回到操作系统系统
        int 21h
MAIN ENDP
       
CSEG ENDS

END MAIN
编译后
出现如下错误
Unable to open input file: transformdata.asm
高手指教一下

2010-4-6 21:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
070
高级用户

苏醒的沉睡者


积分 659
发帖 217
注册 2003-2-15
来自 福建
状态 离线
『第 2 楼』:  

英文意思为,无法打开输入文件:transformdata.asm



好久没碰Dos,手都生了,赶紧回来练练.嘿嘿
2010-4-7 11:59
查看资料  发送邮件  发短消息 网志  OICQ (181315400)  编辑帖子  回复  引用回复
070
高级用户

苏醒的沉睡者


积分 659
发帖 217
注册 2003-2-15
来自 福建
状态 离线
『第 3 楼』:  

我用masm 5.0来编译了一下,提示是a.asm(2): warning A4101: Missing data; zero assumed

还有代码的第18行。。mov ax,eseg中的eseg在哪里?



好久没碰Dos,手都生了,赶紧回来练练.嘿嘿
2010-4-7 12:17
查看资料  发送邮件  发短消息 网志  OICQ (181315400)  编辑帖子  回复  引用回复
chrise
初级用户





积分 88
发帖 32
注册 2010-3-27
状态 离线
『第 4 楼』:  再请教一下

buff1 db 0,1,2,3,4,5,6,7,8,9,
        db 11,12,13,14,15,16,17,18,19,20
这种格式对吗?我这样写是因为书上是这样的,还有输表格的时候,书上也是这样写的,是不是一些版本的masm不支持啊?

2010-4-7 20:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
本是
银牌会员





积分 2201
发帖 789
注册 2005-1-27
状态 离线
『第 5 楼』:  

如3楼所指错误有2,相应地,buff1行末的逗号去除,改eseg为dseg。
“无法打开输入文件:transformdata.asm”说明你的源程序文件名应该不是transformdata.asm,即将它重命名为transformdata.asm,即可。



my major is english----my love is dos----my teacher is the buddha----my friends--how about U
2010-4-8 09:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
070
高级用户

苏醒的沉睡者


积分 659
发帖 217
注册 2003-2-15
来自 福建
状态 离线
『第 6 楼』:  

原来那个错误是末尾的 ,问题啊。。。。
这个没注意。。



好久没碰Dos,手都生了,赶紧回来练练.嘿嘿
2010-4-8 12:12
查看资料  发送邮件  发短消息 网志  OICQ (181315400)  编辑帖子  回复  引用回复
chrise
初级用户





积分 88
发帖 32
注册 2010-3-27
状态 离线
『第 7 楼』:  很受益

非常 感谢

2010-4-8 21:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
heikebx
新手上路





积分 10
发帖 5
注册 2010-4-14
状态 离线
『第 8 楼』:  

haishi budong

2010-4-20 20:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chrise
初级用户





积分 88
发帖 32
注册 2010-3-27
状态 离线
『第 9 楼』:  

你也在学汇编??

2010-4-24 22:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
070
高级用户

苏醒的沉睡者


积分 659
发帖 217
注册 2003-2-15
来自 福建
状态 离线
『第 10 楼』:  

chrise,最近怎么没有新问题啊。。。不大习惯了。。



好久没碰Dos,手都生了,赶紧回来练练.嘿嘿
2010-4-25 11:27
查看资料  发送邮件  发短消息 网志  OICQ (181315400)  编辑帖子  回复  引用回复
netwinxp
高级用户





积分 741
发帖 366
注册 2007-7-25
状态 离线
『第 11 楼』:  

酱紫写会不会好一点呢?而且改动下数据也不容易出问题。
DSEG  SEGMENT
      buff1 db 0,1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20
      datalen equ $-buff1;要常用伪指令来使程序更容易修改。
      buff2 db datalen dup(?)
DSEG  ENDS
CSEG  SEGMENT
      assume cs:CSEG,ds:DSEG
MAIN  PROC FAR;主程序入口
      mov ax,seg DSEG
      mov ds,ax
      mov es,ax
      cld      
      mov si,offset buff1
      mov di,offset buff2
      mov cx,datalen
      rep movsb;串COPY操作在软件中频繁使用,所以循环体越小越好。
      mov ax,4c00h;程序结束,返回到操作系统系统
      int 21h
MAIN ENDP
CSEG ENDS
      END MAIN
[ Last edited by netwinxp on 2010-7-6 at 19:39 ]

2010-6-30 16:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: