stgm segment stack 's'
dw 32 dup (?)
stgm ends
data segment
a db 'c:\ruanjian\integr~1\test5.txt',0
b db 26 dup (?)
c db 'abcdefghijklmnopqrstuvwxyz'
count equ $-c
data ends
code segment
main proc far
  assume ss:stgm,ds:data,cs:code
  ;,es:ata
  push ax
  push bx
  push cx
  push dx
  push si
  push di

  mov ax,data
  mov ds,ax
 ; mov ax,ata
 ; mov es,ax
 cld
  lea si, c
  lea di, b
  

  mov cx, count
  rep movsb

  mov dx,offset a
  mov ah,3dh
  mov al,02h
  int 21h

  mov a, count
  mov bx,ax
  mov ah,42h
  mov cx,0
  mov dx,0
  mov al,2
  int 21h

  mov ah,40h
  mov cx,count
  mov dx,offset b
  int 21h

;  mov ax,ata
;  mov es,ax

  mov ah,40h
  mov cx,count
  mov dx,offset c
 
  int 21h

  mov ah,3eh
  int 21h

  pop di
  pop si
  pop dx
  pop cx
  pop bx
  pop ax
  ret

code ends
main endp
  end main