Рефераты. Ассемблер

Ассемблер

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ОТКРЫТЫЙ УНИВЕРСИТЕТ

ФАКУЛЬТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОЙ РАБОТЕ

по дисциплине:

«Системное программирование»

Выполнил: Тябенков А.О.

студент IV курса МГОУ

Специальность: 200106

Шифр: 6041013/ с

Проверил: Юрагов Е.А.

2008

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ОТКРЫТЫЙ УНИВЕРИТЕТ

Факультет информатики и радиоэлектроники

Кафедра: Информационная измерительная техника

Специальность: 200106

ЗАДАНИЕ

На курсовой проект Тябенкова Антона Олеговича Шифр: 6041013/с

1. Тема работы:

На языке ассемблера разработать алгоритм контроля, на циклический CRC-код, массива данных хранящегося в некоторой области памяти. Код должен быть сохранен для последующей периодической проверки массива данных. В случае несовпадения на экран должно выводиться сообщение об искажении данных.

2. Содержание пояснительной записки:

Введение

1. Создание программы на ассемблере

2. Синтаксис ассемблера

3. Описание алгоритма

4. Описание программы

Заключение

Список литературы

3. Дата выдачи задания:

4. Срок выполнения:

Задание выдал _______________Юрагов Е.А.

Задание принял _______________Тябенков А.О.

СОДЕРЖАНИЕ

Введение 2

1. Создание программы на ассемблере 6

2. Синтаксис ассемблера 12

3. Описание алгоритма 17

4. Описание программы 19

Приложение 1 Блок-схема алгоритма 20

Приложение 2 Листинг программы 21

Заключение 26

Список литературы 27

ВВЕДЕНИЕ

Микропроцессоры корпорации Intel и персональные компьютеры на их базе прошли не очень длинный во времени, но значительный по суще-ству путь развития, на протяжении которого кардинально изменялись их возможности и даже сами принципы их архитектуры.

В то же время, внося в микропроцессор принципиальные изменения, разработчики были вы-нуждены постоянно иметь в виду необходимость обеспечения совмести-мости новых моделей со старыми, чтобы не отпугивать потенциального покупателя перспективой полной замены освоенного или разработанно-го им программного обеспечения. В результате современные микропро-цессоры типа Pentium, обеспечивая такие возможности, как 32-битную адресацию почти неограниченных объемов памяти, многозадачный ре-жим с одновременным выполнением нескольких программ, аппаратные средства защиты операционной системы и прикладных программ друг от друга, богатый набор дополнительных эффективных команд и способов адресации, в то же время могут работать (и часто работают) в режиме первых микропроцессоров типа 8086, используя всего лишь 1 мегабайт оперативной памяти, 16-разрядные операнды (т. е. числа в диапазоне до 216-1=65535) и ограниченный состав команд. Поскольку программирова-ние на языке ассемблера напрямую затрагивает аппаратные возможности микропроцессора, прежде всего, следует выяснить, в какой степени про-граммист может использовать новые возможности микропроцессоров в своих программах, и какие проблемы программной несовместимости мо-гут при этом возникнуть.

Первые персональные компьютеры корпорации IBM, появившиеся в 1981 г. и получившие название IBM PC, использовали в качестве цент-рального вычислительного узла 16-разрядный микропроцессор с 8-раз-рядной внешней шиной Intel 8088. В дальнейшем в персональных компью-терах стал использоваться и другой вариант микропроцессора, 8086, ко-торый отличался от 8088 тем, что являлся полностью 16-разрядным. С тех пор его имя стало нарицательным, и в программах, использующих только возможности процессоров 8088 или 8086, говорят, что они работают в режиме 86-го процессора.

В 1983 г. корпорацией Intel был предложен микропроцессор 80286, в котором был реализован принципиально новый режим работы, получив-ший название защищенного. Однако процессор 80286 мог работать и в режиме 86-го процессора, который стали называть реальным.

В дальнейшем на смену процессору 80286 пришли модели 80386, i486 и, наконец, различные варианты процессора Pentium. Все они могут ра-ботать и в реальном, и в защищенном режимах. Хотя каждая следующая модель была значительно совершеннее предыдущей (в частности, почти на два порядка возросла скорость работы процессора, начиная с модели 80386 процессор стал 32-разрядным, а в процессорах Pentium реализован даже 64-разрядный обмен данными с системной шиной), однако с точки зрения программиста все эти процессоры весьма схожи. Основным их ка-чеством является наличие двух режимов работы -- реального и защищен-ного. Строго говоря, в современных процессорах реализован еще и третий режим -- виртуального 86-го процессора, или V86, однако в плане ис-пользования языка ассемблера этот режим не отличается от обычного режима 86-го процессора, и в этой книге мы его касаться не будем.

Реальный и защищенный режимы прежде всего принципиально раз-личаются способом обращения к оперативной памяти компьютера. Метод адресации памяти, используемый в реальном режиме, позволяет адресо-вать память лишь в пределах 1 Мбайт; в защищенном режиме использует-ся другой механизм (из-за чего, в частности, эти режимы и оказались полностью несовместимыми), позволяющий обращаться к памяти объе-мом до 4 Гбайт. Другое важное отличие защищенного режима заключается в аппаратной поддержке многозадачности с аппаратной же (т.е. реализо-ванной в самом микропроцессоре) защитой задач друг от друга.

Реальный и защищенный режимы имеют прямое отношение к работе операционной системы, установленной на компьютере.

В настоящее время на персональных компьютерах типа IBM PC ис-пользуются в основном два класса операционных систем (оба -- разработ-ки корпорации Microsoft): однозадачная текстовая система MS-DOS и многозадачная графическая система Windows. Операционная система MS-DOS является системой реального режима; другими словами, она исполь-зует только средства процессора 8086, даже если она установлена на ком-пьютере с процессором Pentium. Система Windows -- это система защи-щенного режима; она значительно более полно использует возможности современных процессоров, в частности, многозадачность и расширенное адресное пространство. Разумеется, система Windows не могла бы рабо-тать с процессором 8086, так как в нем не был реализован защищенный режим.

Соответственно двум типам операционных систем, и все программ-ное обеспечение персональных компьютеров подразделяется на два клас-са: программы, предназначенные для работы под управлением MS-DOS (их часто называют приложениями DOS) и программы, предназначен-ные для системы Windows (приложения Windows). Естественно, приложе-ния. DOS могут работать только в реальном режиме, а приложения Windows - только в защищенном.

Таким образом, выражения «программирование в системе MS-DOS», «программирование в реальном режиме» и «программирование 86-го про-цессора» фактически являются синонимами. При этом следует подчерк-нуть, что хотя процессор 8086, как микросхема, уже давно не используется, его архитектура и система команд целиком вошли в современные про-цессоры. Лишь относительно небольшое число команд современных процессоров специально предназначены для организации защищенного режима и распознаются процессором, только когда он работает в защи-щенном режиме.

Целью выполнения данной курсовой работы является получение практических навыков работы программирования на языке ассемблера.

Итогом выполнения курсовой работы является разработка алгоритма контроля на четность массива данных, хранящегося в некоторой области памяти и программы на языке ассемблера, реализующий данный алгоритм.

1. СОЗДАНИЕ ПРОГРАММЫ НА АССЕМБЛЕРЕ.

Надежность программы достигается, в первую очередь, благодаря ее правильному проектированию, а не бесконечному тестированию. Это правило означает, что если программа правильно разработана в отноше-нии как структур данных, так и структур управления, то это в определенной степени гарантирует правильность ее функционирования. При применении такого стиля программирования ошибки являются легко локализуемыми и устранимыми.

В большинстве случаев рекомендуется следую-щий процесс разработки программы на ассемблере:

1.Этап постановки и формулировки задачи:

· изучение предметной области и сбор материала в проблемно-ориентиро-ванном контексте;

· определение назначения программы, выработка требований к ней и пред-ставление требований, если возможно, в формализованном виде;

· формулирование требований к представлению исходных данных и вы-ходных результатов;

· определение структур входных и выходных данных;

· формирование ограничений и допущений на исходные и выходные дан-ные.

2.Этап проектирования:

· формирование «ассемблерной» модели задачи;

· выбор метода реализации задачи;

· разработка алгоритма реализации задачи;

· разработка структуры программы в соответствии с выбранной моделью памяти.

3. Этап кодирования:

· уточнение структуры входных и выходных данных и определение ассемб-лерного формата их представления;

· программирование задачи;

· комментирование текста программы и составление предварительного описания программы.

4. Этап отладки и тестирования:

· составление тестов для проверки правильности работы программы;

· обнаружение, локализация и устранение ошибок в программе, выявлен-ных в тестах;

· корректировка кода программы и ее описания.

5. Этап эксплуатации и сопровождения:

· настройка программы на конкретные условия использования;

· обучение пользователей работе с программой;

· организация сбора сведений о сбоях в работе программы, ошибках в выходных данных, пожеланиях по улучшению интерфейса и удобства рабе ты с программой;

Страницы: 1, 2, 3



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.