Реализация низкоуровневых функций работы с каталогами

Автор: Пользователь скрыл имя, 11 Декабря 2011 в 17:28, лабораторная работа

Описание работы

Цель работы: изучение принципов разработки низкоуровневых функций с использованием сервиса операционной системы MS-DOS. Изучение файловой системы и методов работы с файловой системой. Углубленное изучение метода реализации модуля на языке высокого уровня Турбо Паскаль, его синтаксиса.

Работа содержит 1 файл

ос3_отчет.docx

— 126.46 Кб (Скачать)

Дагестанский  Государственный  Технический Университет

Кафедра ПОВТиАС 
 
 
 
 
 
 

Лабораторная  работа №3

по  дисциплине «Операционные  системы»

на  тему:

“ Реализация низкоуровневых функций работы с каталогами ”. 
 
 
 
 
 
 
 
 
 
 
 
 
 

Преподаватель:

Выполнил:

 
 

Махачкала 2011г.

 
 

 
 

 

    Цель  работы: изучение принципов разработки низкоуровневых функций с использованием сервиса операционной системы MS-DOS. Изучение файловой системы и методов работы с файловой системой. Углубленное изучение метода реализации модуля на языке высокого уровня Турбо Паскаль, его синтаксиса.

    Задание: разработать низкоуровневые функции работы с каталогами с использованием возможностей предоставляемых системным сервисом ОС MS-DOS на языке высокого уровня Турбо Паскаль. Законченные функции оформить в виде модуля.

    Модуль  DIR

unit dir; 

interface 

uses dos;

var REG:registers; 

{proverka flaga CF}

function FLAGS_CF(R:registers): word; 

{Sozdanie kataloga}

function MKDIR1(Path:pchar):word;

{Udalenie kataloga}

function RMDIR1(Path:pchar):word;

{Ustanovit' umalchivaemoe oglavlenie}

function CHDIR1(Path:pchar):word;

{Vozvrashaet tekushij katalog}

function CURDIR1(D:BYTE; var Path:pchar):word; 

implementation 

{proverka flaga CF}

function FLAGS_CF(R:registers): word;

begin

FLAGS_CF:=(R.FLAGS and $1) {proverka flaga CF (pervui bit registers.flags)}

end; 

{Sozdanie kataloga}

function MKDIR1(Path:pchar):word;

begin

  with REG do

  begin

    ah:=$39;

    ds:=seg(path[0]);

    dx:=ofs(path[0]);

  end;

  msdos(REG);

  MKDIR1:=REG.ah;

end; 

{Udalenie kataloga}

function RMDIR1(Path:pchar):word;

begin

  with REG do

  begin

    ah:=$3A;

    ds:=seg(path[0]);

    dx:=ofs(path[0]);

  end;

  msdos(REG);

  RMDIR1:=REG.ah;

end; 

{Ustanovit' umalchivaemoe oglavlenie}

function CHDIR1(Path:pchar):word;

begin

  with REG do

  begin

    ah:=$3B;

    ds:=seg(path[0]);

    dx:=ofs(path[0]);

  end;

  msdos(REG);

  CHDIR1:=REG.ah;

end; 

function CURDIR1(D:BYTE; var Path:pchar):word;

begin

  with REG do

  begin

    ah:=$47;

    dl:=D;

    ds:=seg(path[0]);

    si:=ofs(path[0]);

  end;

  msdos(REG);

  CURDIR1:=REG.ah;

end; 

end. 
 

      Основная  программа 

uses dir,crt,strings;

var s:pchar;

BEGIN

writeln('Создание каталога');

s:='c:\myfolder';

MKDIR1(s);

readkey; 

writeln('Изменение текущего каталог');

s:='c:\tc';

CHDIR1(s); 

writeln('Текущий каталог');

s:='';

CURDIR1(0,s);

writeln(strpas(s)); 

writeln('Удаление каталога');

s:='c:\bp';

CHDIR1(s);

s:='c:\myfolder';

RMDIR1(s);

readkey; 

END. 

Информация о работе Реализация низкоуровневых функций работы с каталогами