Кодування, тестування та відладка. Технічний опис реалізації програми на основі обраної раніше предметної області та передбачених функцій

Страницы работы

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

Содержание работы

МІНИСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНЕВЕРСИТЕТ

«ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ»

Звіт до лабораторної роботи

з курсу Объектно-ориентированное программирование

Виконав:

Студент гр. КІТ-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          ?

Похожие материалы

Информация о работе

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.