汇编网首页登录博客注册
masmaster的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
文章收藏

[2010-07-14 10:43] 练习:创建一个文本文件

-------------------------------------------------------
  1 assume  cs:code,ds:data,ss:stack
  2 data    segment
  3 buffer  db      1024 dup (0)
  4 fname   db      11 dup (0),0
  5 msg     db      'Named filename:','$'
  6 data    ends
  7 stack   segment stack
  8         dw      128 dup (0)
  9 stack   ends
 10 code    segment
 11 start:
 12         mov ax,stack
 13         mov ss,ax
 14         mov sp,256
 15         mov ax,data
 16         mov ds,ax
 17 ;begin input
 18         mov cx,1024
 19         mov di,offset buffer
 20 s0:
 21         mov ah,1
 22         int 21h
 23         cmp al,1bh              ;if press ESC,input finished
 24         je ok
 25         cmp al,0dh              ;if press Enter,newline
 26         je crlf
 27         jmp jx
 28 crlf:   mov ah,3
 29         int 10h
 30         inc dh
 31         mov ah,2
 32         mov dl,0
 33         int 10h
 34         jmp s0
 35 jx:     mov [di],al
 36         inc di
 37         jmp s0
 38 ;
 39 ok:     mov ah,3
 40         int 10h
 41         add dh,2
 42         mov dl,0
 43         mov ah,2
 44         int 10h
 45 ;
 46         mov dx,offset msg
 47         mov ah,9
 48         int 21h
 49 ;input filename
 50         mov cx,11
 51         mov di,offset fname
 52 s1:     mov ah,1
 53         int 21h
 54         cmp al,0dh
 55         je creat
 56         mov [di],al
 57         inc di
 58         jmp s1
 59 ;=================================================
 60 creat:
 61 ;creat file
 62         mov ah,3ch
 63         mov cx,0
 64         mov dx,offset fname
 65         int 21h
 66         mov bx,ax               ;BX=FileHandle
 67 ;write file
 68         mov ah,40h
 69         mov cx,offset fname-offset buffer
 70         mov dx,offset buffer
 71         int 21h
 72
 73 ;close file
 74         mov ah,3eh
 75         int 21h
 76 ;=================================================
 77         mov ah,4ch
 78         int 21h
 79 code    ends
 80 end     start
-------------------------------------------------------
说明:
1,对文件名的合法性没作判断
2,可以用组合键选择退出。可是如果用
mov ah,0
int 16
cmp ax,2004h
je ...
输入数据非常慢, 感觉特粘
3,生成文件后, type的时候,文件没有换行, 不知道为何?
4,这是一个练习程序。
评论次数(1)  |  浏览次数(494)  |  类型(程序与练习) |  收藏此文  | 

[  masmaster   发表于  2010-07-15 11:17  ]

比较郁闷的是,生成的文件没有换行。。。

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码