www.pudn.com > TP333.3_S886.rar > ARSE.ASM


;******************************************** 
;文件名:ARSE.ASM 
;功能:读硬盘0面0头1扇区数据并建立存储文件 
;******************************************** 
data segment                     ;1.定义数据段 
ostr db 'Enter file name:','$'   ;2.屏幕提示 
filename db 15                   ;3.输入的文件名 
         db ?                    ;4. 
         db 15 dup(0)            ;5. 
buffer db 512 dup(0)             ;6.扇区数据 
tmp db 15 dup(0)                 ;7.转存的文件名 
data ends                        ;8. 
code segment                     ;9.定义代码段 
     assume cs:code,ds:data      ;10. 
start:                           ;11.程序开始 
        mov ax,data              ;12.初始化数据段 
        mov ds,ax                ;13. 
                                 ;14. 
        mov ax,seg buffer        ;15.用buffer初始化附加段es 
        mov es,ax                ;16. 
        mov bx,offset buffer     ;17.取址 
        mov ax,0201h             ;18.程序入口参数 
        mov cx,0001h             ;19. 
        mov dx,0080h             ;20. 
        int 13h                  ;21.调用中断 
        mov dx,offset ostr       ;22. 
        mov ah,09h               ;23.输出字符串 
        int 21h                  ;24. 
                                 ;25. 
        mov dx,offset filename   ;26. 
        mov ah,0ah               ;27.接收字符串 
        int 21h                  ;28. 
        mov si,offset filename   ;29. 
        mov di,offset tmp        ;30. 
lstr:   mov dl,[si+2]            ;31.取字符 
        mov [di],dl              ;32.存字符 
        inc si                   ;33.地址递增 
        inc di                   ;34. 
        cmp dl,0dh               ;35.判断是否为回车符 
        jne lstr                 ;36.不等转 
                                 ;37. 
        mov bl,0                 ;38.补0 
        mov [di-1],bl            ;39. 
        mov dx,offset tmp        ;40.取文件名 
        mov cx,0                 ;41. 
        mov ah,3ch               ;42.建立文件 
        int 21h                  ;43. 
        mov dx,offset buffer     ;44.取缓冲区数据地址 
        mov cx,512               ;45. 
        mov bx,ax                ;46. 
        mov ah,40h               ;47.写文件 
        int 21h                  ;48. 
        mov ah,3eh               ;49.关闭文件 
        int 21h                  ;50. 
        mov ah,4ch               ;51.返回系统 
        int 21h                  ;52. 
code ends                        ;53. 
        end start                ;54.程序结束