Операционная система MS-DOS
- Категория Компьютеры и устройства
- Раздел Рефераты
- Просмотров 6717
- Скачиваний 442
- Размер файла 27 Кб
Новосибирский Государственный Технический Университет ОПЕРАЦИОННЫЕ СИСТЕМЫ ЧАСТЬ 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; }; Для работы с сегментными регистрами предназначена
Похожие работы
- Рефераты