标题: 汇编语言编译器使用2
[打印本页]
作者: chrise
时间: 2010-4-6 21:33
标题: 汇编语言编译器使用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高手指教一下
作者: 070
时间: 2010-4-7 11:59
英文意思为,无法打开输入文件:transformdata.asm
作者: 070
时间: 2010-4-7 12:17
我用masm 5.0来编译了一下,提示是a.asm(2): warning A4101: Missing data; zero assumed
还有代码的第18行。。mov ax,eseg中的eseg在哪里?
作者: chrise
时间: 2010-4-7 20:56
标题: 再请教一下
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-8 09:12
如3楼所指错误有2,相应地,buff1行末的逗号去除,改eseg为dseg。
“无法打开输入文件:transformdata.asm”说明你的源程序文件名应该不是transformdata.asm,即将它重命名为transformdata.asm,即可。
作者: 070
时间: 2010-4-8 12:12
原来那个错误是末尾的 ,问题啊。。。。
这个没注意。。
作者: chrise
时间: 2010-4-8 21:46
标题: 很受益
非常 感谢
作者: heikebx
时间: 2010-4-20 20:50
haishi budong
作者: chrise
时间: 2010-4-24 22:02
你也在学汇编??
作者: 070
时间: 2010-4-25 11:27
chrise,最近怎么没有新问题啊。。。不大习惯了。。
作者: netwinxp
时间: 2010-6-30 16:01
酱紫写会不会好一点呢?而且改动下数据也不容易出问题。
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 ]