Переименовать текстовый файл и установить на нем атрибут "Только для чтения" - Assembler

Узнай цену своей работы

Формулировка задачи:

В ассемблере ничего не понимаю просто сказали написать программу, помогите кто сможет буду благодарен). Программу должна переименовать текстовый файл и установить на нем атрибут "Только для чтения". Заранее спасибо!

Решение задачи: «Переименовать текстовый файл и установить на нем атрибут "Только для чтения"»

textual
Листинг программы
;DOS, TASM, COM-файл
;tasm.exe /m filename.asm
;tlink.exe /t /x filename.obj
;
.model tiny
.code
.386
ORG 100h
START:
    mov ah,56h  ;переименовать
    lea dx,file1
    lea di,file2
    int 21h
 
    mov ax,4301h    ;изменить атрибут
    mov dx,di
    mov cx,1    ;только для чтения
    int 21h
 
    ret     ;завершить программу
 
file1 db '1.txt',0
file2 db '2.txt',0
 
end start

Объяснение кода листинга программы

  1. .model tiny - устанавливает модель сегмента данных, используемую в программе. Сегмент данных будет 16-битным сегментом.
  2. .code - указывает на то, что следующий код должен быть написан в формате кода 16-битного сегмента.
  3. .386 - указывает на то, что при генерации кода следует использовать 32-битные регистры.
  4. ORG 100h - указывает начальный адрес сегмента для кода программы.
  5. START: - определяет точку входа в программу.
  6. mov ah,56h - устанавливает код функции для операции переименования файла.
  7. lea dx,file1 - перемещает адрес строки имени файла в регистр dx.
  8. lea di,file2 - перемещает адрес строки нового имени файла в регистр di.
  9. int 21h - вызывает функцию DOS для переименования файла.
  10. mov ax,4301h - устанавливает код функции для изменения атрибутов файла.
  11. mov dx,di - перемещает адрес нового имени файла в регистр dx.
  12. mov cx,1 - устанавливает значение параметра, указывающего на то, что файл должен быть доступен только для чтения.
  13. int 21h - вызывает функцию DOS для изменения атрибутов файла.
  14. ret - завершает программу.
  15. file1 db '1.txt',0 - определяет строку, содержащую имя исходного файла.
  16. file2 db '2.txt',0 - определяет строку, содержащую имя файла, на которое нужно переименовать исходный файл. Следует отметить, что код на ассемблере может быть очень специфичным для конкретной системы и компилятора, поэтому приведенный выше список может не полностью отражать все, что происходит в этом коде.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.571 из 5
Похожие ответы