МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ОТКРЫТЫЙ УНИВЕРСИТЕТ
ФАКУЛЬТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОЙ РАБОТЕ
по дисциплине:
«Системное программирование»
Выполнил: Тябенков А.О.
студент 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, как микросхема, уже давно не используется, его архитектура и система команд целиком вошли в современные процессоры. Лишь относительно небольшое число команд современных процессоров специально предназначены для организации защищенного режима и распознаются процессором, только когда он работает в защищенном режиме.
Целью выполнения данной курсовой работы является получение практических навыков работы программирования на языке ассемблера.
Итогом выполнения курсовой работы является разработка алгоритма контроля на четность массива данных, хранящегося в некоторой области памяти и программы на языке ассемблера, реализующий данный алгоритм.
... . В случае выбора пункта «выход», необходимо реализовать завершение работы программы и передачу управления операционной системе DOS. 1.3. Требования техническим и программным средствам Программа выполнена на языке ассемблера 8086 процессора, соответственно ей необходим IBM PC – совместимый компьютер с процессором не ниже 8086, также программа может выполняться на компьютерах с ...
... смещением. После обращения к _fillstring к указателю стека sp добавляются 8 байт, удаляя параметры из стека. Несмотря на то что в этом примере функция _fillstring в действительности написана на языке ассемблера, вызовы функций С и C++ ничем не отличаются. 4.2 Локальные переменные В дополнение к переменным, объявленным в сегменте данных либо общим с программой С и С++, можно использовать локальные ...
... xxxxxxxxxxxx Виконав ст. гр xxxxxx xxxxxxx “___” ________________2005 р. Перевірив xxxxxxxxxx. “___” ________________2005 р. Харків 2005 ЗАТВЕРДЖЕНО xxxxxxxxxxxx Робота з записами мови ассемблера Текст програми xxxxxxxxx – 12 00-01 Харків 2005 РАЗРАБОТКА ТЕКСТА ПРОГРАММЫ Главная программа: LOCALS include defs.inc .model ...
... разрядов масок в регистре I. Неправильное использование разрядов разрешения прерываний в командах SIM. ВВЕДЕНИЕ В ПРОГРАММНЫЙ РАЗДЕЛ Программный раздел содержит наборы подпрограмм на языке ассемблера для микропроцессоров 8080 и 8085. Каждой подпрограмме предпосланы введение и комментарии; за каждой подпрограммой следует по крайней мере один пример ее использования. Введение содержит следующую ...
0 комментариев