ХАНДЫФАР

Функция CopyFileEx копирует файл из исходного пути в указанное место назначения. Функция CopyFileEx автоматически выравнивает стек на 4 байта.

Параметры:

  1. Указатель на строку с именем файла, завершающуюся нулём 0.
  2. Указатель на строку с путём назначения, завершающуюся нулём 0.

Возвращаемое значение:

  • Если CF = 0: Успешное копирование.
  • Если CF = 1: Ошибка (файл не найден, путь недоступен и т. д.).

Состояние флагов:

  • Функция влияет на все флаги.

Особенности:

  • Функция не изменяет значения регистров, кроме флагов.

  1. title Автор: Довгополов Евгений Сергеевич
  2. .286C
  3. .model small
  4. .stack 100h
  5. data segment public
  6. ____path__db "folder\my_file\", 0
  7. ____fname db "test.txt", 0
  8. data ends
  9. code segment public
  10. ____assume _ds:data, cs:code
  11. ____include Handyfar.inc
  12. ____include Handymac.inc
  13. ____main proc
  14. ________call____SetDataSegment
  15. ________pushs___es:[path]
  16. ________pushs___ds:[fname]
  17. ________call____CopyFileEx
  18. ________push____0
  19. ________call____ExitProcessEx
  20. ____main endp
  21. code ends
  22. end main
Функция CopyFileEx копирует файл из исходного пути в указанное место назначения. Функция CopyFileEx автоматически выравнивает стек на 4 байта.

Параметры:

  1. Указатель на строку с именем файла, завершающуюся нулём 0.
  2. Указатель на строку с путём назначения, завершающуюся нулём 0.

Возвращаемое значение:

  • Если CF = 0: Успешное копирование.
  • Если CF = 1: Ошибка (файл не найден, путь недоступен и т. д.).

Состояние флагов:

  • Функция влияет на все флаги.

Особенности:

  • Функция не изменяет значения регистров, кроме флагов.

  1. title Автор: Довгополов Евгений Сергеевич
  2. .286C
  3. .model small
  4. .stack 100h
  5. data segment public
  6. ____path__db "folder\my_file\", 0
  7. ____fname db "test.txt", 0
  8. data ends
  9. code segment public
  10. ____assume _ds:data, cs:code
  11. ____include Handyfar.inc________; Подключаем файл с функциями
  12. ____include Handymac.inc________; Подключаем файл с макросами
  13. ____main proc
  14. ________call____SetDataSegment__; Вызываем процедуру SetDataSegment
  15. ________pushs___es:[path]_______; Ложим на вершину стека адрес переменной path
  16. ________pushs___ds:[fname]______; Ложим на вершину стека адрес переменной fname
  17. ________call____CopyFileEx______; Вызываем процедуру CopyFileEx(fname, path) := CF
  18. ________push____0_______________; Ложим на вершину стека байтовое значение кода возврата
  19. ________call____ExitProcessEx___; Вызываем процедуру ExitProcess(0)
  20. ____main endp
  21. code ends
  22. end main
Made on
Tilda