Главная страница
Навигация по странице:

  • Возвращаемое

  • Переносимость

  • Назначение

  • Справочник по функциям С++. Подпрограммы классификации Подпрограммы преобразования


    Скачать 3.41 Mb.
    НазваниеПодпрограммы классификации Подпрограммы преобразования
    АнкорСправочник по функциям С++.doc
    Дата07.05.2018
    Размер3.41 Mb.
    Формат файлаdoc
    Имя файлаСправочник по функциям С++.doc
    ТипДокументы
    #18992
    КатегорияИнформатика. Вычислительная техника
    страница65 из 120
    1   ...   61   62   63   64   65   66   67   68   ...   120

    intdos


    -----------------------------------------------------------------
    Назначение Общий интерфейс программных прерываний MS-DOS.
    Синтаксис #include

    int intdos(union REGS *intregs,

    union REGS *outregs);
    Прототип в dos.h
    Замечания intdos вызывает программное прерывание 0x21 для

    вызова специальной функции DOS. Значение inregs

    ->h.al определяет вызываемую функцию.
    После завершения обработки прерывания 0x21

    intdos копирует текущее значение регистров в

    outregs, а флаг состояния системы - в поле

    outregs x.cflag.
    Если установлен флаг состояния, это значит, что

    возникла ошибка.
    Отметим, что inregs может указывать на ту же

    структуру, что и outregs.
    Возвращаемое intdos возвращает значение AX после

    значение завершения функции DOS. Если флаг состояния ус-

    тановлен (outregs->x.cflag != 0), указывая на

    ошибку, функция присваивает _doserrno код ошиб-

    ки.
    Переносимость Уникальна для MS-DOS.
    Смотри также bdos, bdosptr, geninterrupt, intdosx, int86,

    int86x, intr
    Пример

    #include

    #include
    /* уничтожает имя файла, при успехе возвращает

    0, иначе не 0 */

    int delete_file(char near *filename)

    {

    union REGS regs; struct SREGS sregs;

    int ret;
    regs.h.ah = 0x41; /* уничтожить файл */

    regs.x.dx = (unsigned) filename;

    ret = intdos(®s,&sregs);

    /* Если флаг состояния установлен, то имеет

    место ошибка */
    return(regs.x.cflag ? ret : 0);

    }
    main()

    {

    int err;
    err=delete_file("NOTEXIST.$$$");
    printf("Возможно уничтожить NOTEXSIT.$$$ ?"

    "%s\n",((!err) ? "ДА" : "НЕТ");

    }
    Результат выполнения программы
    Возможно уничтожить NOTEXIST.$$$? НЕТ

    -----------------------------------------------------------------

    intdosx


    -----------------------------------------------------------------
    Назначение Общий интерфейс программных прерываний MS-DOS.
    Синтаксис #include

    int intdosx(union REGS *inregs,

    union REGS *outregs,union SREGS *segregs);
    Прототип в dos.h
    Замечания intdosx вызывает программное прерывание 0x21

    для вызова специальной функции DOS. Значение

    inregs->h.al определяет вызываемую функцию.
    intdosx, кроме того, копирует segregs->x.ds и

    segregs->x.es в соответствующие регистры перед

    выполнением программного прерывания. Эта осо-

    бенность позволяет программам, которые исполь-

    зуют дальние (far) указатели или большую модель

    памяти, определить сегмент, который будет ис-

    пользован во время выполнения функции.
    После завершения обработки прерывания 0x21

    intdosx копирует текущее значение регистров в

    outregs, а флаг состояния системы - в поле

    outregs x.cflag. intdosx, кроме того, восста-

    навливает DS.
    Если установлен флаг состояния, это значит, что

    возникла ошибка.
    Отметим, что inregs может указывать на ту же

    структуру, что и outregs.
    Возвращаемое intdosx возвращает значение AX после

    значение завершения функции DOS. Если флаг состояния ус-

    тановлен (outregs->x.cflag != 0), указывая на

    ошибку, функция присваивает _doserrno код ошиб-

    ки.
    Переносимость Уникальна для MS-DOS.
    Смотри также bdos, bdosptr, geninterrupt, intdos, int86,

    int86x, intr

    -----------------------------------------------------------------

    intr


    -----------------------------------------------------------------
    Назначение Дополнительный интерфейс программных прерываний

    процессора 8086.
    Синтаксис #include

    int intr(int intr_num,struct REGPACK *preg);
    Прототип в dos.h
    Замечания Функция intr - это альтернативный интерфейс для

    выполнения программных прерываний. Она вызывает

    программное прерывание процессора 8086, указан-

    ное в аргументе intr_num.
    intr копирует значения регистров из стуктуры

    REGPACK в регистры перед выполнением программ-

    ного прерывания. После обработки программного

    прерывания intr копирует текущие значения ре-

    гистров в preg, включая флаги состояний.
    Функции intr передаются следующие аргументы:
    intr_num - номер прерывания;
    preg - адрес структуры, содержащей:
    (а) входные регистры перед пре-

    рыванием;

    (б) значения регистров после

    прерывания.
    Структура REGPACK (описанная в dos.h) имеет

    следующий вид:
    struct REGPACK {

    unsigned r_ax, r_bx, r_cx, r_dx;

    unsigned r_bp, r_si, r_di, r_ds, r_es,

    r_flags;

    };
    Возвращаемое Никакого значения не возвращается. Структура
    значение preg содержит значения регистров после выполне-

    ния прерывания.
    Переносимость intr уникальна для процессоров семейства 8086.
    Смотри также geninterrupt, int86, int86x, intdos, intdosx

    -----------------------------------------------------------------
    1   ...   61   62   63   64   65   66   67   68   ...   120


    написать администратору сайта