回 帖 发 新 帖 刷新版面

主题:[原创]急~~~~很急的小问题~~~

我用汇编创建了一个TXT文件,然后往里面写内容,但是回车换行总也搞不定~~
.model tiny;
.code;
.startup;

          mov dx,offset fName ; 创建文件
          mov cx,0
          mov ah,3ch
          int 21h        
     

          mov ah,3dh          ;打开文件
          mov al,03
          mov dx,offset fName
          int 21h
          push ax             ;保存文件句柄

          mov bx,ax
          mov cx, 12
          mov dx,offset fBuffer
          mov ah,40h
          int 21h             ;写文件

          pop bx              ;弹出文件句柄

          mov ah,3eh          ;关闭文件
          int 21h
          
          .exit 0;           ;退出程序

fName db 'd:\myinfo.txt',0h
fBuffer db 'abcd',0dh,0ah,'efgh'
end;
怎样才能让abcd,efgh分两行显示呢?请高手帮忙~~

回复列表 (共1个回复)

沙发

未见大毛病,只是你创建和打开理解有误——创建是建立一个新文件,但是如果该文件已经存在,则打开。所以其后打开文件那段是多余的,就是这段:
          mov ah,3dh          ;打开文件
          mov al,03
          mov dx,offset fName
          int 21h

另外,你这种语法体系我没接触过,按说Tiny模式的程序,CS=DS=ES=SS,所以程序开始不用装填DS。微软的不支持Tiny,我没法实践。但是只要是你没转成.com文件,还是要在程序开始装填一下DS,就是:
.startup;
          push cs
          pop ds

修改后,你在命令提示符下,用debug打开生成的文件看看。例如:
E:\>debug myinfo.txt
-d
13C7:0100  61 62 63 64 0D 0A 65 66-67 68 00 00 00 00 00 00   abcd..efgh......

看到以上数据的话,证明你写文件成功了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册