Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

Int86

CuBook05

Функция

Генерирует программное прерывание процессора 8086.
 
Синтаксис

#include <dos.h>
int int86(int intr_num, union REGS *inregs, union REGS *outregs);
 
Прототип

dos.h
 
Описание

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

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

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

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

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

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

#define VIDEO 0x10

void movetoxy(int x, int y)
{
union REGS regs;
regs.h.ah = 2; /* установить позицию курсора */
regs.h.dh = y;
regs.h.dl = x;
regs.h.bh = 0; /* страница 0 */
int86(VIDEO, &regs, &regs);
}

int main(void)
{
clrscr();
movetoxy(35,10);
printf("Привет\n");
return 0;
}
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий