МІНИСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНЕВЕРСИТЕТ
«ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ»
Звіт до лабораторної роботи
з курсу “ Объектно-ориентированное программирование ”
Виконав:
Студент гр. КІТ-14в
Богачов О. С.
Харків – 2006
Лабораторна робота №11.
Тема: “ Кодування, тестування та відладка”
Мета: технічний опис реалізації програми на основі обраної раніше предметної області та передбачених функцій.
Детальний опис методів класів та функцій.
Клас TOS має наступні моделі:
§ TOS() – конструктор класу, обнулює вказівники.
§ void stast() – змінює поточний процес, попередній переводить до стану очікування занесенням відповідного значення до поля стану класу TProcess, викликає функцію start1();
§ void AddProcess (void far*prt) – функція додає до списку новий процес;
Функція void start1() змінює адресу обробника переривання на адресу вказаної функції;
Функція fststop() встановлює для поточного процесу стан «завершений»;
Функція UINT* changeprocess(UNIT* curr) перемикає поточний процес на наступний;
Функція void proc1() є програмною реалізацією діяльності першого;
Функція void proc2() є програмною реалізацією діяльності другого процесу;
Функція main(void) – головна функція проекту, яка ініціалізує графічний режим, додає до списку процесу обидва процеси, по закінчені їх роботи зафарбовує екран.
Текст програми:
Sys.asm
.model large,c
.386
LOCALS
_TEXT segment public use16
assume cs:_TEXT
public int8handler
public setcallback
public setint8callback
public setretcallback
include sys.inc
setint8callback proc far// инициализация вектора прерівания
push bpс
mov bp,sp
mov ax,[bp+6]
mov dx,[bp+8]
mov word ptr cs:oldvec,ax
mov word ptr cs:oldvec+2,dx
pop bp
ret
setint8callback endp
setcallback proc far// установка вектора прерівания на реальній плнаировщик
push bp
mov bp,sp
mov ax,[bp+6]
mov dx,[bp+8]
mov word ptr cs:callback,ax
mov word ptr cs:callback+2,dx
pop bp
ret
setcallback endp
setretcallback proc far //подготавка возврат к планировщику
push bp
mov bp,sp
mov ax,[bp+6]
mov dx,[bp+8]
mov word ptr cs:back,ax
mov word ptr cs:back+2,dx
pop bp
mov cs:BDS,ds
mov cs:BES,es
mov cs:BBP,bp
mov cs:BSS,ss
mov cs:BSP,sp
add cs:BSP,8
ret
setretcallback endp
int8handler proc far //функция обработи прерівания от таймера и віполняет функция пнланировщика
db 0cch
cli
mov cs:RAX,ax
mov cs:RBX,bx
mov cs:RCX,cx
mov cs:RDX,dx
mov cs:RSI,si
mov cs:RDI,di
mov cs:RBP,bp
mov cs:RSP,sp
add cs:RSP,6
mov cs:RDS,ds
mov cs:RES,es
mov cs:RSS,ss
pop ax ;ip
pop bx ;cs
pop cx ;flags
mov cs:RFR,cx
mov cs:RCS,bx
mov cs:RIP,ax
pushf
call dword ptr cs:oldvec
mov ds,cs:BDS
mov es,cs:BES
push cs
push offset RAX
call dword ptr cs:callback
add sp,4
cmp dx,0
je @@l1
push es cs
pop es
lea di,RAX
mov si,ax
mov ds,dx
mov cx,CREGS
rep movsw
pop es
mov ax,cs:RAX
mov bx,cs:RBX
mov cx,cs:RCX
mov dx,cs:RDX
mov si,cs:RSI
mov di,cs:RDI
mov bp,cs:RBP
mov ss,cs:RSS
mov sp,cs:RSP
mov ds,cs:RDS
mov es,cs:RES
push cs:RFR
push cs:RCS
push cs:RIP
iret
@@l1:
mov ds,cs:BDS
mov es,cs:BES
mov bp,cs:BBP
mov ss,cs:BSS
mov sp,cs:BSP
sti
jmp dword ptr cs:back
RAX dw ?
RBX dw ?
RCX dw ?
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.