Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
METODIchka4.DOC
Скачиваний:
5
Добавлен:
04.05.2019
Размер:
940.03 Кб
Скачать

Порядок выполнения работы

Написать программу на языке ассемблера соглас­но варианту задания. Максимально использовать дру­жественный интерфейс с пользователем, обеспечить выдачу сообщений о всех возможных ошибках ( см. процедуру disk_status в Приложении А ).

Варианты заданий. Не использовать функции dos !!!.

1. Написать программу FORMAT, форматирующую в дисководе А двустороннюю дискету на 360К. (Ис­пользовать прерывание 13Н). При обнаружении сбой­ных секторов программа должна выводить соответ­ствующее сообщение и прекращать работу. (см. Приложение В).

2. Написать программу, форматирующую 41 дорожку 360К- дискеты, с размером сектора, отлич­ным от 512 байт, записывающую и читающую информацию в любой сектор этой дорожки.

3. Написать программу, форматирующую какую-нибудь (например 41-ю) дорожку дискеты, используя обратную нумерацию секторов, записыва­ющую и читающую информацию в любой сектор этой дискеты.

4. Написать программу, восстанавливающую толь­ко что удаленный файл. (удаления файла программа не производит. Имя файла известно).

5. Написать программу, создающую новый файл и копирующую в него какой-либо существующий. (Ис­пользовать прерывание 13Н).

6. Написать программу, дописывающую к одному файлу - другой и удаляющую второй файл. (Исполь­зовать прерывание 13Н ).

7. Написать программу, позволяющую запустить себя 3 раза (не более) и еще одну - ее инсталлирующую. Работа программы состоит в выводе на экран строки «Hello, world !». Возможна следующая схема ( для инсталлятора ):

- найти первый свободный кластер ;

- записать во все байты его первого сектора число 3 ;

- пометить этот кластер в FAT1 и FAT2 как плохой (для программы).

- искать плохие кластеры, первый сектор которых содержит либо 1, либо 2, либо 3 ;

- если таких нет - завершить работу ;

- уменьшить это значение на 1 ;

- если результат больше 0, записать его в сектор, вывести на экран «Hello, world !» и завершить работу ;

- если результат равен 0, пометить кластер как свободный, вывести строку и завершиться.

8. Написать программу, размещающую файл LAB9.TXT в последовательных кластерах, начиная со второго свободного.

9. Написать программу, сохраняющую в файле DISK.SAV FAT и корневой каталог. ( INT 13H).

10. Написать программу, запрашивающую имя фай­ла и изображающую его расположение в FAT.

11. Написать программу, посекторно копирующую одну дискету на другую. ( Использовать прерывание 13Н ).

12. Написать программу, которая, прячет n-й кластер файла LAB9.TXT по следующей схеме :

- кластер помечается в FAT как плохой;

- его номер в FAT и его номер в цепочке ( n ) заносятся в первый свободный кластер дис­кеты;

- этот кластер помечается как плохой;

- корректируются FAT1 и FAT2.

13. Написать программу, запрашивающую номер кластера и некоторое число num, и добавляющую этот кластер в список кластеров файла LAB9.TXT так, чтобы его порядковый номер в списке был num. (Запрос номера кластера и числа num осущес­твить средствами DOS ).

14. Написать программу «замок/ключ». Программа запрашивает режим : 0 - «замок», 1 - «ключ» . «Замок» помечает второй кластер файла LAB9.TXT как последний, а все остальные превращает в файлА00000А.000. «Ключ» восстанавливает файл. (Файл занимает последовательные кластеры).

15. Написать программу, которая переписывает файл LAB9.TXT так, чтобы он весь был расположен на одной стороне дискеты.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]