Читать реферат по информационному обеспечению, программированию: "Операционная система MS-DOS" Страница 1

назад (Назад)скачать (Cкачать работу)

Функция "чтения" служит для ознакомления с работой. Разметка, таблицы и картинки документа могут отображаться неверно или не в полном объёме!

Новосибирский Государственный Технический Университет ОПЕРАЦИОННЫЕ СИСТЕМЫ

ЧАСТЬ 1. ОПЕРАЦИОННАЯ СИСТЕМА MS-DOS Методические указания

к лабораторным работам для студентов 2 и 3 курса

Факультета АВТФ (специальность 2202)

дневного и заочного отделения Новосибирск

1997 Составили: к.т.н., доц. В.Г. Качальский

ст.преп. Е.Н. Павенко Рецензенты: к.т.н., доц. В.А. Астапчук Работа подготовлена кафедрой автоматизированных систем управления Способы обращения к ОС MS-DOS

Программы, составленные на языке С, обращаются к прерываниям MS-DOS с помощью таких функций как intdos, int86, intdosx и т.д.

Для передачи параметров используются структуры REGS, WORDREGS, BYTEREGS, SREGS, описанные в файле dos.h. Программа записывает параметры в поля структуры, соответствующие регистрам процессора, а затем вызывает одну из перечисленных выше функций, передавая ей адрес структуры. После выполнения прерывания результат записывается в эту же или другую структуру. Например:

union REGS inregs, outregs;

struct SREGS segregs;

......

inregs.h.ah. = 0x3a;

segregs.ds = FP_SEG(dir_name);

inregs.x.dx = FP_OFF(dir_name);

intdosx(&inregs, &outregs, &segregs);

.....

В этом фрагменте кода вызывается функция 3Ah прерывания INT 21h, для чего используется функция intdosx, которая входит в стандартную библиотеку системы разработки С++. Номер функции записывается в поле h.ah объединения inregs, параметры функции (передаваемые через регистры DS:DX) - соответственно поле ds структуры segregs и в поле x.dx объединения inregs. Функция intdosx записывает содержимое регистров процессора поле выполнения программного прерывания в объединение outregs.

Объединение REGS определено в файле dos.h следующим образом:

UNION REGS

{

struct WORDREGS x;

struct BYTEREGS h;

};

В нем имеется две структуры - WORDREGS и BYTEREGS.

Первая из этих структур предназначена для работы с 16-зфззядными регистрами. Она определена так:

struct WORDREGS

{

unsigned int ax, bx, cx, dx, si. di, cflag, flags;

};

В этой структуре поля ax, bx, cx, dx, si, di соответствуют одноименным регистрам центрального процессора. Значение флага переноса записывается в переменную cflag, поле flags предназначено для остальных флагов процессора.

С помощью структуры BYTEREGS можно задавать и определять содержимое 8-разрядных регистров процессора:

struct BYTEREGS

{

unsigned char al, ah, bl, bh, cl, ch, dl, dh;

};

Для работы с сегментными регистрами предназначена структура SREGS, определенная следующим образом:

struct SREGS

{

unsigned int es;

unsigned int cs;

unsigned int ss,

unsigned int ds;

};

Для использования перечисленных выше структур программа должна одержать следующую строку:

#include

Поле вызова программного прерывания программа должна проверить флаг переноса, который сохраняется в поле cflag. Проверка поля cflag может быть выполнена, например, следующим образом:

union REGS inregs, outregs;

.....

intdos(&inregs,&outregs);

if(outregs.x.cflags != 0) error();

......

Код ошибки при этом записывается в переменную outregs.x.ax.

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

Исследование логической структуры диска в MS-DOS Цель работы

Изучение логической структуры диска ОС MS-DOS

Общие положения

Диски ОС MS-DOS организованы по довольно жесткой схеме. Каждый диск включает в себя помимо области файлов еще несколько управляющих областей фиксированного размера. Первый сектор логического диска (сектор 1, дорожка 0, головка 0) содержит загрузочную запись -


Интересная статья: Основы написания курсовой работы