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

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

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

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

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

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

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

Команды: AAA , CBW и CWDКоманда AAA используется для десятичной коррекции для специального представления чисел в неупакованной десятичной форме. В этой форме каждый байт используется для хранения одной десятичной цифры.; Команда AAAMOV AX , 0ChAAAДо выполнения команды AAA на регистре AX мы имеем 000Сh, а после выполнения получим 0102h.Команды CBW и CWD используются для преобразования форматов представлениячисел с учетом знака (байта в слово и слова в двойное слово). Для пояснения команд нампотребуется переменная типа двойного слова (result).result DD…0Пример команды CBW:; Команда CBWMOV AH,7MOV AL, 5CBW;байт в словоДо выполнения команды на регистре AX мы имеем 0705h, а после выполнения командыполучим 0005h.

Для отрицательных чисел знаки и представление чисел тоже сохраняется:; Команда CBWMOV AH,7MOV AL, -5CBW;байт в словоДо выполнения команды на регистре AX мы имеем 07FBh, а после выполнения командыполучим FFFBh.В команде CWD используется дополнительно к AX и регистр DX. Поэтому дляфрагмента программы, показанного ниже:; Команда CWDMOV DX,7MOV AX, -5CWDMOVWORD PTR result[2], DXMOVWORD PTR result[0], AXв регистре AX получим FFFBh, в регистре DX FFFFh, а значение переменной будет таким:result,d Œ -516.6. Команды: ADC и SBBКоманды ADC и SBB используются для сложения и вычитания с учетом флага переноса от предыдущей операции. Для сложения (ADC) добавляется перенос, если он был,а для вычитания (SBB) вычитается. Ниже приводятся примеры для сложения и вычитаниячетырех-байтовых чисел.Сложение:long1 DDlong2 DDresult DD…10000600000; Команда ADCMOVAX, WORD PTR long1[0]; AX = low word, long1682010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”MOVDX, WORD PTR long1[2]; DX = high word, long1ADDAX, WORD PTR long2[0]; Add low word, long2ADCDX, WORD PTR long2[2]; Add high word, long2MOVWORD PTR result[2], DXMOVWORD PTR result[0], AXПолучим:result,d Œ 70000Вычитание:long1 DDlong2 DDresult DD…40000100000; Команда SBBMOVAX, WORD PTR long3[0]MOVDX, WORD PTR long3[2]SUBAX, WORD PTR long4[0]SBBDX, WORD PTR long4[2]MOVWORD PTR result[2], DXMOVWORD PTR result[0], AX;;;;AX = low word, long1DX = high word, long1Add low word, long2Add high word, long2Получим:result,d Œ 3000016.7.

Команды: LOOP/LOOPE/LOOPNEКоманды организации циклов позволяют повторить фрагмент программы заданноечисло раз. Это число задается на регистре CX. На каждом шаге цикла значение CXуменьшается на 1 и проверяется на нуль. При достижении нуля цикл заканчивается.Фрагмент программы с циклом:; Команда LOOPCLDLEA DI, StrdMOV CX,10MOV AL, '*'MLOOP:STOSBLOOP MLOOP; конец циклаMOV AL, 0STOSBВ результате получим:&Strd,s Œ ”**********”Другие команды циклов проверяют дополнительно значение флага нуля (ZF), который устанавливается арифметическими командами.

Должны быть выполнены одновременно два условия. Следующий цикл выполняется всего один раз:; Команда LOOPE LOOPZCLDLEA DI, StrdMOV CX,10MOV AX,0MLOOPE:STOSBADD AX, 1LOOPE MLOOPEПосле команды ADD флаг нуля устанавливается в 1 (не равно нулю) и цикл завершается.Аналогично для обратной команды LOOPNE цикл выполнится один раз:; Команда LOOPNE LOOPNZCLDLEA DI, Strd2010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”MOV CX,10MOV AX,0MLOOPNE:STOSBADD AX, 0LOOPNZ MLOOPNE69так как после добавления в AX нуля флаг нуля будет сброшен в 0. Проверьте также работукоманд циклов: LOOPZ и LOOPNZ.Практика.1.

Выполните в режиме отладки фрагменты программ для команды XLAT.2. Примените команду XLAT при разработке программы 4-й ЛР.3. Выполните в режиме отладки фрагменты программ для команды MOVSB.4. Примените команду MOVSB при разработке программы 8-й ЛР.5.

Выполните в режиме отладки фрагменты программ для команд DIV и MUL.6. Выполните в режиме отладки фрагменты программ для команд TEST и AND.7. Выполните в режиме отладки фрагменты программ для команд CBW и CWD.8. Выполните в режиме отладки фрагменты программ для команд ADC и SBB.9. Выполните в режиме отладки фрагменты программ для команд LOOP иLOOPE/LOOPNZ.2010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”7018.

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

Резидентные программыРезидентные программы (TSR – “Terminate and Stay Resident”) – это программы,которые остаются в оперативной памяти (ОП) после их специального завершения. Этипрограммы могут работать параллельно с другими программами ДОС (псевдопараллельно).

Обращение к этим программам выполняется через механизм прерываний (программные или аппаратные прерывания).TSRОПВызов по адресу,взятому из векторапрерывания - ВП.(Например INT 2Fh)Для правильной работы резидентной программы (TSR) необходимо выполнитьследующие действия и процедуры:−−−−−−Проверить повторную загрузку данного нового резидента.Загрузить резидентную программу в оперативную память.Выдать сообщение о корректной загрузке резидента в память.Записать в вектор прерываний (см.

ниже) адрес резидента.Прочитать и правильно использовать параметры запуска резидента.Обеспечить вызов старого обработчика прерываний по данному адресу, еслитакое необходимо.− Правильно отработать в процедуре резидента заданные функции.− Обеспечить связь с резидентной программой с помощью клавиатеры, программно или другим способом.− Обеспечить, при необходимости корректную выгрузку резидентной программы и освобождение занимаемой резидентом памяти.− Корректно восстановить работу старых обработчиков данного прерывания,восстановить адреса старых обработчиков в векторе прерываний.− Выдать сообщение о завершении работы резидентной программы.В данном разделе мы рассмотрим основные действия и процедуры, необходимыедля построения резидентной программы и ее корректной работы.2010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”7118.3. Вектор прерыванийВектор прерываний (ВП) – этот область оперативной памяти, содержащей адресаобработчиков прерываний.

Каждый адрес занимает 4 байта (far адрес обработчика, включая адрес сегмента – 2б и адрес смещения – 2б). Область ВП имеет размер 1024 байта (1Кб), поэтому максимально можно записать 256 адресов, т.е возможно обрабатывать 256различных прерываний. Вектор прерываний находится в начале ОП (для реального режима) по адресам 0000:0000 – 0000:03FF (см. рисунок ниже).<far адрес обработчика>………<far адрес обработчика или блока><far адрес обработчика><системные области ><области п/п ДОС и BIOS>Пользовательскиерезидентныепрограммы и драйверыПользовательские программы……Видеобуфер<системные области ><Буферы экрана для разных режимов><системные области >…Идентификационный № ЭВМ (2б)HMA – High Memory Area0000:0000 – начало области ВПКаждый адрес - 4 байта…Å ОБЛАСТЬ ВЕКТОРА ПРЕРЫВАНИЙ0000:03FF – 1024б=4*256 – конец области ВП0000:0400 – буферы, данные ОС и т.дB800:0000 – буфер дисплея (видеопамять)F000:FFFУE – IBM Computer TypeFFFF:FFF0 – конец области HMAВычисление адреса конкретного обработчика в векторе прерываний выполняетсяумножением его номера (прерывания) на четыре: например, для прерывания 09Н мы получим – 0000:0024Н (или десятичное смещение 36).

Доступ к адресам обработчиков прерываний может быть прямым (вычисляем адрес) или с помощью системных функций (25hи 35h прерывания ДОС 021h). Эти возможности рассмотрены ниже.Все остальные детали распределения ОП вы можете посмотреть в справочникахДОС – General Memory Map, которые расположены на сайте или в литературе (ЛР № 1).18.4. Структура резидентной программы (2-е части)Обычно резидентная программа (далее мы будем также пользоваться термином резидент) первоначально состоит из двух частей. Они показаны на рисунке ниже.Резидентная частьпрограммыВременнаячастьпрограммы, используемая при инициализации резидента- ЧАСТЬ 1 находится постоянно в памяти и вызывается толькопосредством прерываний программных и аппаратных.- ЧАСТЬ 2 работает только при запуске резидента или проверке повторного его запуска или при выполнении процедуры выгрузки резидента.2010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”72При завершении установки резидента оперативная память под временную частьобычно освобождается, поэтому команды и данные из этой части нельзя использовать впроцедурах резидентной части.

В состоянии проверки повторности загрузки резидентнойпрограммы в ОП может находиться одновременно две части резидентной, так как программа запускается повторно.18.5. Понятие прерывания и их назначениеПрерывания – это специальный механизм, позволяющий операционной системевыполнять свои функции (управление ресурсами). Они обеспечивают связь аппаратнойчасти компьютера и обрабатывающих программ.

Кроме того, механизм прерываний обеспечивает выполнение множества стандартных функций для управления программами иустройствами.Прерывания – это автоматически инициируемый программный процесс, временнопереключающий микропроцессор на выполнение другой программы. После обработкипрерывания прерванный процесс автоматически будет продолжен.В момент возникновения прерывания в стеке запоминается точка возврата (следующая после прерывания команда) и содержание регистра флагов. После завершения обработки прерывания из стека восстанавливается регистр флагов (Flags) и прерванная программа переключается на выполнение следующей команды.Прерывания подразделяются на программные и аппаратные. Данная классификация основана на причине инициирования прерывания. В случае программных прерыванийони возникают после выполнения специальной команды (INT – interrupt - прерывание),которая выполняется в самой прерываемой программе.

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