ХАНДЫФАР

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

Параметры:

  • DS:AX: Указатель на строку с именем файла, завершающуюся 0.
  • ES:BX: Указатель на строку с путём назначения, завершающуюся 0.

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

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

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

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

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

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

  1. title Автор: Довгополов Евгений Сергеевич
  2. .model small
  3. .stack 100h
  4. data segment public
  5. ____path__db "folder\", 0
  6. ____fname db "test.txt", 0
  7. data ends
  8. code segment public
  9. ____assume _ds:data, cs:code
  10. ____include Handyfar.inc
  11. ____main proc
  12. ________call____SetDataSegment
  13. ________lea_____bx, es:[path]
  14. ________lea_____ax, ds:[fname]
  15. ________call____MoveFile
  16. ________xor_____al, al
  17. ________call____ExitProcess
  18. ____main endp
  19. code ends
  20. end main
Функция MoveFile перемещает файл из исходного пути в указанное место назначения.

Параметры:

  • DS:AX: Указатель на строку с именем файла, завершающуюся 0.
  • ES:BX: Указатель на строку с путём назначения, завершающуюся 0.

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

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

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

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

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

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

  1. title Автор: Довгополов Евгений Сергеевич
  2. .model small
  3. .stack 100h
  4. data segment public
  5. ____path__db "folder\", 0
  6. ____fname db "test.txt", 0
  7. data ends
  8. code segment public ____________; Начало сегмента кода
  9. ____assume _ds:data, cs:code
  10. ____include Handyfar.inc________; Подключаем файл с функциями
  11. ____main proc __________________; Начало процедуры main
  12. ________call____SetDataSegment__; Вызываем процедуру SetDataSegment
  13. ________lea_____bx, es:[path]___; Загружаем адрес строки path в регистр es:bx
  14. ________lea_____ax, ds:[fname]__; Загружаем адрес строки fname в регистр ds:ax
  15. ________call____MoveFile________; Вызываем процедуру MoveFile(ax:fname, bx:path) := CF
  16. ________xor_____al, al__________; Обнуляем регистр al
  17. ________call____ExitProcess_____; Вызываем процедуру ExitProcess
  18. ____main endp __________________; Конец процедуры main
  19. code ends ______________________; Конец сегмента кода
  20. end main _______________________; Конец файла. Точкой входа указывается процедура main
Made on
Tilda