Язык:
Русский
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.PAS}
{ Пример программы для процедуры Intr }
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.