Russian Belarusian English German Japanese Ukrainian

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

Intr

CuBook05

Функция

Дополнительный интерфейс к прерываниям процессора 8086.
 
Синтаксис

#include <dos.h>
void intr(int intr_num, struct REGPACK *preg);
 
Прототип

dos.h
 
Описание

Функция intr поддерживает альтернативный интерфейс для выполнения программных прерываний. Она генерирует прерывание микропроцессора 8086, заданное аргументом intr num.

Функция intr перед выполнением прерывания копирует значения регистров из структуры REGPACK *preg непосредственно в регистры. После завершения прерывания функция intr копирует текущее значение регистров в параметр preg. Значения флагов остаются законсервированными.

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

Никакое значение не возвращается. Структура REGPACK *streg содержит значения регистров после вызова прерывания.
 
Переносимость

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

#include<stdio.h>
#include<string.h>
#include<dir.h>
#include<dos.h>

#define CF 1 /* флаг переноса */

int main(void)
{
char directory[80];
struct REGPACK reg;
printf("Введите директорию, куда перейти:");
gets(directory);
reg.r_ax = 0x3b << 8;
reg.r_dx = FP_OFF(directory);
reg.r_ds = FP_SEG(directory);
intr(0x21,&reg);
if(reg.r_flags & CF)
printf("Ошибка при смене директории\n");
getcwd(directory);
printf("Текущая директория: %s",directory);
return 0;
}
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

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