Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Методическое пособие для выполнения лабораторных работ и КР

Методическое пособие для выполнения лабораторных работ и КР, страница 20

PDF-файл Методическое пособие для выполнения лабораторных работ и КР, страница 20 Системное программирование (17500): Книга - 4 семестрМетодическое пособие для выполнения лабораторных работ и КР: Системное программирование - PDF, страница 20 (17500) - СтудИзба2018-01-09СтудИзба

Описание файла

PDF-файл из архива "Методическое пособие для выполнения лабораторных работ и КР", который расположен в категории "". Всё это находится в предмете "системное программирование" из 4 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 20 страницы из PDF

В этомслучае в текстовом редакторе под WINDOWS данные сообщения правильночитаться не будут.Кстати, используя русификатор, Вы дополнительно проверяете правильность своейпрограммы в части вызова старого обработчика прерывания. Необходимо корректно вызвать старый обработчик. В тех случаях, когда используется полная обработка прерываниясобственным резидентов, ввод русских символов с клавиатуры становиться недоступным.18.26. ДЗ и ТЗ на КРВ 4-м семестре студенты в виде домашнего задания (ДЗ) разрабатывают и защищают ТЗ на резидентную программу курсовой работы по СП, которая выполняется поплану 5-го семестра.

Требования к выполнению ДЗ, варианты КР и требования к документации размещены на сайте и периодически обновляются. Студенты должны изучить эти2010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”90требования, без ошибок выбрать свой вариант и сдать ДЗ в указанные сроки.

Нумерациявариантов КР в 5-м семестре сохраняется из 4-го семестра. Документ должен быть оформлен правильно и без ошибок и сохранен в последней редакции для использования в 5-мсеместре (один экземпляр ТЗ остается у преподавателя, а другой у студента).18.27. КРВ 5-м семестре студенты выполняют курсовую работу по дисциплине СП. Требования к выполнению КР, варианты КР и требования к документации размещены на сайтеи периодически обновляются. Работа заключается в следующих основных заданиях:− разработка проекта программы резидента по заданному варианту,− разработка и отладка программы резидента,− разработка комплекта документации на программный продукт,− сдача и защита КР на основе предоставленных материалов и проведенияприемно-сдаточных испытаний, которые проводятся на основе специальнойпрограммы испытаний.КР работа выполняется и защищается каждым студентом индивидуально.

По результатам проверки документации и проведенных испытаний проставляется оценка, которая идет в диплом.18.28. Автономная программа для выгрузки TSRВ вариантах курсовой работы предусмотрен случай выгрузки резидента с помощьюспециальной автономной программы. В этом варианте необходимо создать программу,которая обращается к резиденту с помощью прерывания 2D (2F).

С помощью этого прерывания сначала нужно проверить наличие резидента в памяти, а затем выдать сигнал выгрузки. Далее показан пример программы, в которой выполняются такие действия.; Программа выгрузки резидента (unload.asm)MYCODE SEGMENT 'CODE'ASSUME CS:MYCODESTART:; Загрузка сегментного регистра данных DSPUSH CSPOP DS; Проверка наличия резидента в ОПMOV AH, 0EEhMOV AL, 1; Проверка наличияINT 2DhCMP AL, 0FFhJNE NO_LOAD ; переход если резидент не(!) в памяти; ВызрузкаMOV AH , 0EEHMOV AL,2INT 2DhCMP AL , 0FFH; проверка ответа от нашего резидента должнобыть 0FFHJNE ERR; Сообщение об успешной выгрузкеMOV AH , 09HMOV DX, OFFSET MSG_UNLDINT21HJMP EXIT;Ошибка выгрузкиERR:MOV AH , 09H912010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”MOV DX, OFFSET MSG_ERRINT21HJMP EXIT; Сообщение о том, что уже загруженNO_LOAD:MOV AH , 09HMOV DX, OFFSET MSG_NOUNLDINT21H; Выход из программыEXIT:MOV AL, 0MOV AH, 4CHINT 21H;СообщенияMSG_NOUNLDDB 'TSR is NO in memory!', 10,13,'$'MSG_UNLD DB 'TSR was unloaded (Unload programm)!', 10,13,'$'MSG_ERR DB 'Ошибка выгрузки резидента!', 10,13,'$'; ASCII!!!MYCODE ENDSEND STARTКомпиляция данной программы должна быть выполнена в формате .EXE.

Мы получим UNLOAD.EXE. Запуск этой программы при загруженном резиденте приводит кследующей реакции в командной строке:C:\work> unloadC:\work>TSR was unloaded (Unload programm)!C:\work>_Если резидента в памяти не обнаружено, то получим:C:\work> unloadC:\work> TSR is NO in memory!C:\work>_Выгрузку можно выполнить и другим способом, рассмотренным выше, без использования обработчика собственного прерывания (2D), при этом должны быть восстановлены старые обработчики и освобождена оперативная память.18.29.

Пример резидентной программыНиже приводиться текст простой (функционально) резидентной программы, которая содержит все системные требования, заданные в курсовой работе студентов по дисциплине СП.Данная программа, после выполнения загрузки резидента, при нажатии на функциональную клавишу F1 выводить на экран дисплея сообщение –“ TSR: F1 - pushed!!!”.Перечень основных функций перечислен в заголовке программы.;;;;;;Пример простой резидентной программы ( tsrpos.asm )-> tsrpos.comПо F1 - выводиться строкаПо Ctrl+F1 - программа выгружаетсяВыполняется проверка повторности запуска TSRВыполняется вызов справки по /H или /hВыполняется выгрузка из части инициализации /U или /uCODEPR SEGMENT PARAASSUME CS:CODEPR , DS:CODEPRPSP:ORG 100H; Область PSP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Резидентная частьBEGIN:JMPINIT; Переход к части инициализации;Данные резидентаSAVEINT9 DD ?; Сохранение старого обработчика922010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”SAVEINT2D DD ?; Сохранение старого обработчикаFLAG DB0;Новый обработчик прерывания 09НNEWINT9:CLIPUSHAX; Сохранение используемых регистров; Вызов старого обработчикаPUSH ESPUSH DSPUSH CSPOPDS;PUSH AXPUSH BXPUSH CXPUSHFCALL CS:SAVEINT9; Вызов старого обработчикас возвратом;Запись в AX и AL кодов из буфера;MOV AX , 40H;MOV ES , AX;MOV BX , ES:1AH;MOV AX, ES:[BX]MOV AH, 1INT16HJZ PROD;Проверка расширенного кодаCMP AL , 0JEEXTCMP AH, 1DH; Для чистого CTRLJNE PRODMOV AH,00HINT 16HPROD:POP CXPOP BXPOP AXJMPEND9;Проверка нажатия F1EXT:CMP AH , 3BH ; Код F1JE PRINT1; Печать строкипо F1; Проверка выгрузкиCMP AH , 5EH; Нажата Ctrl + F1JNE PRODUNLD:; Выгрузка;;; 9Н; 2FHPUSH ESMOV DX,OFFSET REZMSG1CALL PRINTPOP ES; Вывод сообщение о завершении; резидентаPUSH DXPUSH ESmov AX,2509H; Восстановление обработчика прерывания 05Hlds DX,CS:SAVEINT9int 21Hmov AX,252DH; Восстановление обработчика прерывания 2FHlds DX,CS:SAVEINT2Dint 21H932010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”; получим из PSP адpес собственного окpужения и выгpузим егоMOVES,CS:2CHMOVAH,49HINT21H; выгpузим тепеpь саму пpогpаммуPUSHCSPOPESMOVAH,49HINT21H; Код в AL для успешной выгрузкиMOV AH,00HINT 16H;POP ESPOP DXPOP CXPOP BXPOP AX;POP DSPOP ESPOP AXSTIIRET;Вывод цепочки F1PRINT1:PUSH ESMOV DX,OFFSET REZMSG2; Вывод сообщение о F1CALL PRINT;POP ES; Очистка буфера клавиатурыPUSH ESMOV AX , 40HMOV ES , AXMOV BX , ES:1AHMOV ES:1CH , BX;POP ESJMP PROD;END9:POP DSPOP ESPOP AXSTIIRET;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;NEWINT2D PROC FARCLIPUSH DS;PUSH CSPOPDSCMP AH, 0EEh; собственный кодJE MY_OBRJMP OLD_OBR; Новый обработчикMY_OBR:CMP AL , 1 ; Проверка наличияJE EXIT_2FCMP AL, 2; ВыгрузкаJE UNLOAD;;;;;;;;;2010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”EXIT_2F: MOV AL, 0FFH ; Есть в памятиSTIPOP DSIRET;UNLOAD:; Восстановление обработчиковPUSH CSPOPDSMOV DX,OFFSET REZMSG1CALL PRINT;94; Вывод сообщение о завершении; резидента;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;PUSH DXPUSH ES; 9Н; 2FHmov AX,2509H; Восстановление обработчика прерывания 05Hlds DX,CS:SAVEINT9int 21Hmov AX,252DH; Восстановление обработчика прерывания 2FHlds DX,CS:SAVEINT2Dint 21H; получим из PSP адpес собственного окpужения и выгpузим егоMOVES,CS:2CHMOVAH,49HINT21H; выгpузим тепеpь саму пpогpаммуPUSHCSPOPESMOVAH,49HINT21H; Код в AL для успешной выгрузкиMOV AL, 0FFHPOP DXSTIPOP ESPOP DSIRETOLD_OBR:MOV AL, 0; наш резидент не установленSTIPOP DSJMPCS:SAVEINT2D; Вызов старого обработчикаNEWINT2D ENDP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Процедура печати строки для резидентной программы; т.к.

21Н(09H) нельзя; DX - adress string NEAR (DS - БАЗА);Конец строки - '$';PRINTPROCPUSH DIPUSH AXPUSH CXPUSH DXPUSH BXMOVDI,DX;Позиция курсора в началеMOVAH,03H2FH;2010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”MOVBH,00HINT10HMOV95CX , 70; цикл вывода и проверки символов строкиLOOP1:MOVAL,DS:[DI]CMPAL,'$'; Конец строки для выводаJEFIN;Печать символа на экранINC DIMOVBH,0MOVAH,0AHPUSH CXMOVCX,0001HINT10HPOP CX; Новая позиция курсораNEXT4:MOVAH,02HINCDLMOVBH,00HINT10HJMPLOOP1; Конец цикла выводаFIN:POP BXPOP DXPOP CXPOP AXPOP DI; Восстановление стекаRETPRINTENDPREZMSG1 db 'TSR was unloaded (Ctrl+F1 - TSR part)!','$'REZMSG2 db 'TSR: F1 - pushed!!!', '$';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Часть инициализацииINIT:CLI; Запрет прерываний; Установка DSPUSH CSPOP DS; проверка параметровMOV AL ,CS:80HCMP AL, 0JNE INIT_UND; Есть параметры; Проверка в мамятиINIT1:PUSH CSPOP DSMOV AH, 0EEhMOV AL, 1; Проверка наличияINT 2DhCMP AL, 0FFhJNE INIT2; переход если резидент не(!) в памяти (на загрузку); Сообщение о том, что уже загруженMOV AH , 09HMOV DX, OFFSET MSG_INMEMINT21H; Выход из программыбез установки резидентаEXITTSR:MOV AL, 0MOV AH, 4CHSTIINT 21H962010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”; Вызрузкаили справкаINIT_UND:; Есть параметры;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;разборка параметровMOV SI , OFFSET ( PSP + 81H)LODSB; первый пробелLODSBCMPAL , '/'JNEERR_PARLODSB; символ параметраCMPAL , 'H'JEINIT_HELPCMPAL , 'h'JEINIT_HELPCMPAL , 'U'JEINIT_UND1CMPAL , 'u'JEINIT_UND1JMP ERR_PAR; ВыгрузкарезидентаINIT_UND1:MOV AH , 0EEHMOV AL,2INT 2DhCMP AL , 0FFHJE INIT3;Сообщение о том что нет выгрузкиMOV AH , 09HMOV DX, OFFSET MSG_NOUNLDINT21HJMPEXITTSR; Сообщение о выгрузкеINIT3:MOV AH , 09HMOV DX, OFFSET MSG_UNLDINT21HJMPEXITTSR; СправкаINIT_HELP:MOV AH , 09HMOV DX, OFFSET MSG_HelpINT21HJMPEXITTSRERR_PAR:MOV AH , 09HMOV DX, OFFSET MSG_ParamINT21HJMPEXITTSR; Получение адреса старого обработчика9INIT2: MOVAH, 35HMOVAL, 09H; Номер прерыванияINT 21H; Сохранение адреса старого обработчикаMOVWORD PTR SAVEINT9 , BXMOVWORD PTR SAVEINT9+2 , ES; Установка нового обработчика в вектор прерыванияMOVAH,25HMOVAL, 09H; Номер прерыванияMOVDX, OFFSETNEWINT9INT21H; Получение адреса старого обработчика2FMOVAH, 35HMOVAL, 2DH; Номер прерывания9972010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”INT 21H; Сохранение адреса старого обработчикаMOVWORD PTR SAVEINT2D , BXMOVWORD PTR SAVEINT2D +2 , ES; Установка нового обработчика в вектор прерывания2FMOVAH,25HMOVAL, 2DH; Номер прерыванияMOVDX, OFFSETNEWINT2DINT21H; Вывод сообщения о загрузке резидентаMOV AH , 09HMOV DX, OFFSET MSGINT21H; Завершить и оставить резидентной (TSR)MOVAX, 3100HMOVDX, (init - begin +10FH)/16; Размер резидентаSTI; Разрешение прерыванийINT21H; Данные части инициализацииMSGDB 'Start TSR program!', 10,13,'$'MSG_INMEM DB 'TSR already is in memory!', 10,13,'$'MSG_UNLD DB 'TSR was unloaded (Init part)!', 10,13,'$'MSG_NOUNLDDB 'TSR is NO in memory!', 10,13,'$'MSG_HelpDB 'Test - sample TSR - 2010', 10,13,'Parameters: /H or /h help , /U or /u - unload TSR ', 10,13,'€-д®а¬ жЁпя!',10,13,'$'; Последний текст "Информация" - введен в коде ASCII!!!MSG_ParamDB 'Error - command line parameters!', 10,13,'$'CODEPRENDSENDBEGINПосле компиляции и редактирования связей в формате .COM (см.

выше) получимисполнимый модуль TSRPOS.COM.Предварительно необходимо проверить размер свободной памяти и его запомнить:C:\work>mem…591664 максимальный размер исполняемой программы…При запуске этого модуля без параметров резидент будет загружен в оперативнуюпамять:C:\work>tsrposC:\work>Start TSR program!C:\work>_Повторный запуск исполнимого файла TSRPOS.COM приводить к выдаче сообщения на экран:C:\work>tsrposC:\work>TSR already is in memoryC:\work>_Проверка с помощью утилиты MEM должна показать наличие резидента и его окружения в памяти (напомню, что перед запуском резидента необходимо с помощью утилиты MEM проверить количество свободной памяти и его запомнить!):C:\work>mem /p…Адрес------000000000400Имя--------Размер-----000400000100Тип-----Вектор прерыванияОбласть обмена ПЗУ (ROM)00DE20COMMAND000510Данные……2010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”00E340COMMAND000B5000EEA0COMMAND0004F000F3A0TSRPOS00051000F8C0TSRPOS00026000FA30MEM00051000FF50MEM0174E098ПрограммаОкружениеОкружениеПрограммаОкружениеПрограмма589968 максимальный размер исполняемой программыПри запуске программы в режиме справки резидент не загружается и не удаляетсяиз памяти.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5301
Авторов
на СтудИзбе
416
Средний доход
с одного платного файла
Обучение Подробнее