Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
66f2f16e-865d-11e3-9ea3-f6d299da70eeУММ по СПО.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
454.66 Кб
Скачать

1. Резиденттік программаның негізгі ұйымы.

2. Резиденттік программамен байланыс.

3. Резиденттік программаны жадыдан шығару.

1. Программалық үлкен класс, функциялы есептеу жүйесін қамтамассыз ететін (драйверлік құрылым, DOS қабықшасы, шифрлеу және қорғау программалары: мәліметтер, русификаторлар, блокнот немесе калькулятор және т.б. электронды программалар қатысады), жадыда болуы тиіс және қолданушының сұранысына тез арада әрекет жасау керек, немесе есептеуіш жүйедегі басқа бір жағдайларға байланысты. Бұндай программалар жадыдағы резидент немесе жай резиденттік программалардың атымен аталады. Резидентті программаны .СOM типті немесе .EXE программалық типті құрастыруға болады, бірақ резиденттік программа максимал болуы тиіс болғандықтан, резиденттік түрінде .COM типтік программалар жиі қолданылады.

Жүктелу және жадыда қалдыру үшін арналған программалар, көбінесе екі бөлімнен тұрады (секция) – инициализациялық және жұмысшы (резиденттік). Резиденттік секция текстік программаның басында орналасады, кейін – инициализацияланады.

Резиденттік программаны қосу үшін, оған қалайда басқарманы және параметрлерді беру керек. Резиденттік программаны үш түрмен қосуға болады:

  • программа сияқты CALL операторымен шығару;

  • асинхрондық (аппараттық) үзілісті механизмді қолдану;

  • синхрондық (программалық) үзілістің көмегімен.

Сонымен қатар DOS – та резиденттік программалармен қарым – қатынаста мультиплекстік үзілім 2Fh қарастырылады.

2. Резиденттік программаға транзиттік қатынау үшін тапсырма аралық қатынасының ауданын қолдануға болады, BIOS мәлімет ауданның бөлігін құрайды және 40h:F0h…40h:FFh адресінде орналасқан. Бұл аудан жүйемен қолданылмайды, тек қана қолданушының коммуникациялық программамен арнайы қолданылады. Тапсырма аралық қатынасының ауданымен резиденттік программасын шақыру мен қатар параметрлерді беруге болады. Параметрлердің өзін емес оның адрес беруге ыңғайлы; себебі толық адрес екі сөздік орын алады, ал тапсырма аралық ауданында төрт адрес орын алады.

Резиденттік программасын және параметрлерін басқаруын ең арнайы тәсіл, бос векторды қолдану, мысалы, 60h…66h. Инициализация кезінде резиденттік программа өзінің адресін бол векторға орналастырады:

mov ax,0

mov es, ax

mov es: 180h.offset entry

mov es: 182h, cs

Резиденттік программасын екпінді түрге келтірген кезінде транзиттік программада int 60h командасын істеуге жеткілікті.

Бұл жағдайда резиденттік программа IRET командасымен қорытындылау керек. Параметрлердің адресін басқа бос векторлар алқылы беруге болады, мысалы, 61h немесе 62h. Әрине, тапсырма аралық ауданын да қолдануға болады.

Жүйесінің келісімі бойынша 2 Fh үзілімі AL регистіріне резиденттік программасының қалып күйін қайтарады:

AL=0 – программа орнатылмаған (яғни жадыда резиденттік программа әлі жоқ) және оны орнатуға болады;

AL=1 – программа орнатылмаған және орнатуға болмайды;

AL=FFh – программа орнатылған сондықтан қайта орнатуға керегі жоқ.

3. Резиденттік программаларын әр түрлі тәсілдермен жадыдан шығаруға болады. Ең қарапайым тәсіл – жадының блогын босату, Dos 49h функциясы арқылы программаны ауыстыру. Басқасында - жадыдан шығару программасында 4Ch аяқталу функциясы қолданылады, оны шығуын емес ал резиденттік программаны аяқтау, содан кейін басқарманы шығаруға қайтарады. Жадыны босатудың алдында векторлық үзілісті бәрібір қалпына келтіру керек, резиденттік программамен ұсталған.

Әдебиеті:

1 В. Юров, С. Хорошенко "Ассемблер". - С-П: "ПитерКом", 1999.

2 К. Г. Финогенов "Самоучитель по системным функциям MS-DOS".- М.:

"Радио и связь", 1995.

Бақылау сұрақтары:

1 Резидентті программалар дегеніміз не?

2 Резиденттік программаны неше түрмен қосуға болады?

3 Резиденттік программаларын жадыдан шығару үшін қандай тәсілін білесіз?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]