помогите пожалуйста дописать програмку! Суть программы: Копирование файла - программа запрашивает два полных имени файла, источник и приемник, и производит копирование источника в приемник.
Вот что есть на данный момент:
.model small
.stack 100h
.code
.386
start:
mov ax,DGROUP; указывают где начала кода
mov ds, ax
;получаем длину командной строки
mov cl, es:80h
cmp cl, 1 ;если длина строки - 1 символ
jle show_usage ;значит полезного в ней нет, выводим справку о программе
;иначе переносим имя файла в path
;mov cl, es:80h
sub cl,1
mov bx,81h
next:
inc bx
mov ah,es:[bx]
mov path[bx-82h],ah
LOOP next
;и открываем этот файл
mov ax,3d00h ; открываем для чтения
lea dx,path ; DSx указатель на имя файла
; mov dx,offset path ; DSx указатель на имя файла
int 21h ; в ax деcкриптор файла
jc exit ; если поднят флаг С, то ошибка открытия
mov bx,ax ; копируем в bx указатель файла
xor cx,cx
xor dx,dx
mov ax,4200h
int 21h ; идем к началу файла
out_str:
mov ah,3fh ; будем читать из файла
mov cx,1 ; 1 байт
lea dx,buf ; в память buf
int 21h
cmp ax,cx ; если достигнуть EoF или ошибка чтения
jnz close ; то закрываем файл закрываем файл
mov dl,buf
mov ah,2 ; выводим символ в dl
int 21h ; на стандартное устройство вывода
jmp out_str
close: ; закрываем файл, после чтения
mov ah,03Eh
int 21h
jmp exit
show_usage:
mov ah,9 ; Функция DOS 09h
mov dx,offset usage
int 21h ; вывести строку на экран
; выход из процедуры
exit:
mov ax,4c00h ;конец программы
int 21h
.data
usage db "Using this program:",0Dh,0Ah,"fread.exe [filename.txt]",0Dh,0Ah,'$'
path db " " ; имя файла для октрытия
buf db ?
end start
Но тут программа только запрашивает имя файла. Я никак не могу разобраться буфером и assembler, хотя бы наведите на правильную мысль! очень буду признательна)))