link, { селектор повеpнення }
esp0,ess0, { показчик стека кiльця 0 }
esp1,ess1, { показчик стека кiльця 1 }
esp2,ess2, { показчик стека кiльця 2 }
cr3,eip,eflags,eax,ecx,edx,ebx, { регiстри }
esp,ebp,esi,edi,es,cs,ss,ds,fs,gs,ldtr { МП }
:longint;
bit_t:byte; { бiт пастки задачі }
adr_BKVV:word; { змiщення БКВВ }
byte_end:byte { байт завершення TSS }
end;
t_task_stack=array[1..1024] of byte; { Тип стека задач }
var
gdt:array[0..12] of t_gdt; { Таблиця GDT }
idt:array[0..$30] of t_idt; { Таблиця IDT }
gdtr, { Змiст GDTR }
idtr, { Змiст IDTR для роботи в захищеному режимi }
idtr_r { Змiст IDTR для роботи в pеальному режимi }
:t_dtr;
ofs_ret, { Змiщення i }
sel_ret, { селектор точки повернення в реальний режим }
cs1, { Селектор модуля PROT }
{-------------------------------Змiннi для зберiгання змiсту регiстрiв---------------------------}
real_ss, { SS, }
real_es, { ES, }
real_sp:word; { SP }
semaf, { Змiнна-семафор }
cpu_type, { Номер типу мiкpопpоцесоpа }
res, { Ознака скидання МП }
excep, { Номер виключення }
acc_int, { Байт доступу переривання }
acc_trap, { Байт доступу пастки }
t:byte; { Ознака розрядностi МП: T=0 - 16; T=8 - 32 }
function lin_adr(seg,off:word):longint;
function hex(p:longint):string;
function hw(p:word):string;
procedure init_gdt(i:byte;limit,base:longint;acces,byte_6h:byte);
procedure init_idt(i:byte;p_off,p_sel:word;acces:byte);
procedure pic(mode:byte);
procedure init_gdtr;
procedure init_idtr_p;
procedure init_idtr_r;
procedure save_ret_real(seg,ofs:word;byte_shut:byte);
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.