| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1234 人关注过本帖
标题:求助一程序
只看楼主 加入收藏
evillive
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-1-15
收藏
 问题点数:0 回复次数:3 
求助一程序
读入一个文本文件并以DEBUG中的D命令格式显示。
        要求:A、以DEBUG中的D命令格式显示一个文本文件。
              B、文件名从键盘键入。
        思路:A、打开相应文件,读内容至程序缓冲区。
              B、按要求显示。
搜索更多相关主题的帖子: 键盘 文本文件 缓冲区 
2008-01-15 17:01
zhulei1978
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:53
帖 子:1351
专家分:1200
注 册:2006-12-17
收藏
得分:0 
程序代码:
data segment

 source_buffer db 21,21 dup (?)

 handle dw ?

 con db 0

 bf db 16 dup (?)

 ms1 db 'File ','$'

 ms2 db ' isn',27h,'t exist!','$'
data ends

code segment
main proc far

 assume cs:code,ds:data

start:

 push ds

 sub ax,ax

 push ax

 mov ax,data

 mov ds,ax

 mov dx,offset source_buffer

 mov ah,0ah

 int 21h

 lea si,source_buffer

 inc si

 mov cl,[si]

 mov ch,0

 cmp cx,0

 jz flag7

 loop1:
  inc si

 loop loop1
  inc si

 mov byte ptr [si],0

 mov ax,3d00h

 mov dx,offset source_buffer

 inc dx

 inc dx

 int 21h

 jnb open_ok
flag7:

 mov dl,13

 mov ah,2

 int 21h

 mov dl,10

 int 21h

 mov dx,offset ms1

 mov ah,9

 int 21h

 lea si,source_buffer

 inc si

 mov cl,[si]

 mov ch,0

 cmp cx,0

 jz flag6
loop6:

 inc si
loop loop6

 inc si

 mov byte ptr [si],'$'

 mov dx,offset source_buffer

 inc dx

 inc dx

 int 21h
flag6:

 mov dx,offset ms2

 int 21h 

 jmp exit
open_ok:

 mov handle,ax
flag1:

 cmp con,1

 jz exit1
flag2:

 mov bx,handle

 mov ah,3fh

 mov cx,16

 lea dx,bf

 int 21h

 cmp ax,16

 jz flag3

 cmp ax,0

 jz exit1

 push ax

 mov dl,13

 mov ah,2

 int 21h

 mov dl,10

 int 21h

 pop ax 

 mov cx,ax

 lea si,bf
loop4:

 inc si
loop loop4

 mov cx,16

 sub cx,ax
loop5:

 mov byte ptr [si],0

 inc si
loop loop5  

 mov con,1

 jmp flag8
flag3:

 mov dl,13

 mov ah,2

 int 21h

 mov dl,10

 int 21h
flag8:

 mov cx,16

 lea si,bf
loop2:

 mov al,[si]

 push cx

 mov cl,4

 rol al,cl

 pop cx

 and al,0fh

 add al,30h

 cmp al,3ah

 jl printit1

 add al,7h

 jmp printit1
exit1:

 jmp exit
printit1:

 mov dl,al

 mov ah,2

 int 21h

 mov al,[si]

 and al,0fh

 add al,30h

 cmp al,3ah

 jl printit2

 add al,7h
printit2:

 mov dl,al

 int 21h

 inc si

 mov dl,' '

 int 21h

 cmp cx,9

 jnz flag4

 mov dl,'-'

 int 21h
flag4:
loop loop2

 mov dl,' '

 int 21h

 mov dl,' '

 int 21h

 mov cx,16

 lea si,bf
loop3:

 mov dl,[si]

 cmp dl,0

 jnz flag5

 mov dl,'.'
flag5:

 int 21h

 inc si
loop loop3

 jmp flag1
exit: 

 ret
main endp
code ends
end start


[[italic] 本帖最后由 zhulei1978 于 2008-1-17 11:09 编辑 [/italic]]

其实我就是改变社会风气,提高少女素质,刺激电影市道,提高年轻人内涵,玉树临风,风度翩翩的整蛊专家,我名叫古晶,英文名叫JingKoo!
2008-01-16 20:17
evillive
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-1-15
收藏
得分:0 
运行时只是黑黑的一片啊
可以解释一下最好了
2008-01-22 12:42
zhulei1978
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:53
帖 子:1351
专家分:1200
注 册:2006-12-17
收藏
得分:0 
运行后直接输入路径和文件名就可以了

[[italic] 本帖最后由 zhulei1978 于 2008-1-22 19:57 编辑 [/italic]]

其实我就是改变社会风气,提高少女素质,刺激电影市道,提高年轻人内涵,玉树临风,风度翩翩的整蛊专家,我名叫古晶,英文名叫JingKoo!
2008-01-22 19:45
快速回复:求助一程序
数据加载中...
 
   



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

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