Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

int86x

int86x


Функция            Интерфейс с программными прерываниями процессора
                   8086.

Синтаксис          #include <dos.h>
                   int int86(int intr_num, union REGS *inregs,
                       union REGS *outregs, struct SREGS *segregs);

Файл, содержащий   dos.h
прототип

Описание           Функция генерирует      программное     прерывание
                   микропроцессора  8086,  причем  номер   прерывания
                   определяется     аргументом     intr_num.    Перед
                   выполнением прерывания,  функция копирует значения
                   регистров из объединения inregs в сами регистры.

                   Кроме этого, int86 копирует значения segregs->x.ds
                   и segregs->x.es в соответствующие регистры,  перед
                   вызовом  прерывания.  Эта  возможность   позволяет
                   программам   использовать  дальние  указатели  или
                   большие модели памяти  для  указания  используемых
                   для прерывания сегментов.

                   После возврата  из  прерывания,  функция  копируют
                   текущие значения регистров в параметр  outregs,  а
                   состояние флага системного переноса в поле x.cflag
                   параметра outregs.  Если флаг переноса установлен,
                   это  означает  что произошла ошибка.  Кроме этого,
                   данная функция  восстанавливает  содержимое  DS  и
                   заполняет    поля    segregs->es   и   segregs->ds
                   соответствующими значениями.

                   int86x позволяет   вам   генерировать   прерывание
                   которое  получает значение в DS отличное от адреса
                   сегмента  данных  по  умолчанию,   и/или   которое
                   получает аргумент в регистре ES.

                   Примечание: параметры   inregs   и  outregs  могут
                   указывать на одну и туже структуру.

Возвращаемое       Функция int86 возвращает значение регистра AX после
значение           завершения прерывания. Если флажок переноса
                   установлен (outregs-->x.cflag!=0),     то     есть
                   произошла   ошибка,   данная  функция  присваивает
                   глобальной переменной _doserrno код ошибки.

Переносимость      Функция уникальна для семейства микропроцессоров
                   8086.

Смотри также       bdos, bdosptr, geninterrupt, intdos, intdosx,
                   int86, intr, segread.

Пример:

#include<dos.h>
#include<process.h>
#include<stdio.h>

int main(void)
{
   char filename[80];
   union REGS inregs,outregs;
   struct SREGS segregs;
   printf("Введите имя файла:");
   gets(filename);
   inregs.h.ah = 0x43;
   inregs.h.al = 0x21;
   inregs.x.dx = FP_OFF(filename);
   segregs.ds = FP_SEG(filename);
   int86x(0x21,&inregs,&outregs,&segregs);
   printf("Атрибуты файла: %X\n",outregs.x.cx);
   return 0;
}

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог