Intr (процедура) (модуль WinDos)

Язык:
Русский
English

 Intr (процедура)    (модуль WinDos)


Выполняет определенное программное прерывание.

Объявление

  Procedure Intr(IntNo : Byte; Var Regs : TRegisters);

Режим

Windows, Real, Protected

Замечания

IntNo - номер программного прерывания (0 .. 255). Registers - запись, определенная в модуле DOS; TRegisters - запись, определенная в модуле WinDos. Смотри описание типа Registers и описание типа TRegisters.

Перед выполнением заданного программного прерывания, Intr загружает регистры ЦП 8086 : AX, BX, CX, DX, BP, SI, DI, DS и ES из записи Regs. После завершения прерывания, содержание регистров AX, BX, CX, DX, BP, SI, DI, DS, ES и Flags сохраняется обратно в запись Regs.

Чтобы избежать появления ошибки защиты при выполнении программ в стандартном режиме Windows или расширенном режиме Windows 386, всегда инициализируйте регистры DS и ES в записи TRegisters с допустимыми селекторными значениями или просто обнулите данные поля записи.

Ограничения

Не используйте программные прерывания, которые:

   - Зависят от значений регитров SP или SS при входе.
   - Изменяют значения регистров SP или SS при выходе.

В Turbo Pascal версии 3.0, тип переменной Regs был определяемым пользователем. В версиях 5.0 и старше, переменная Regs должна иметь тип Registers, определенный в модуле Dos.

Смотри также

Пример

Язык:
Русский
English


 { Пример программы для процедуры Intr }

uses Dos;

var
 Date, Year, Month, Day : String;
  Regs                   : Registers;  { Для модуля WinDos используйте }
                                      { тип TRegisters.               }

begin
  Regs.AH := $2A;
 with Regs do
    Intr($21, Regs);
 with Regs do
 begin
   Str(CX, Year);
   Str(DH, Month);
   Str(DL, Day);
 end;
 Date := Day + '.' + Month + '.' + Year;
 WriteLn('Сегодня : ', Date);
end.
Тэги: Intr
| G+
Код для вставки: :: :: :: ::
Поделиться: // //