![]() |
|
сделать стартовой | добавить в избранное |
![]() |
Компьютеры, Программирование
Программное обеспечение
Ассемблер |
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ОТКРЫТЫЙ УНИВЕРСИТЕТ ФАКУЛЬТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОЙ РАБОТЕ по дисциплине: «Системное программирование» Выполнил: Тябенков А.О. студент 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 ВВЕДЕНИЕ Микропроцессоры корпорации I el и персональные компьютеры на их базе прошли не очень длинный во времени, но значительный по существу путь развития, на протяжении которого кардинально изменялись их возможности и даже сами принципы их архитектуры. В то же время, внося в микропроцессор принципиальные изменения, разработчики были вынуждены постоянно иметь в виду необходимость обеспечения совместимости новых моделей со старыми, чтобы не отпугивать потенциального покупателя перспективой полной замены освоенного или разработанного им программного обеспечения. В результате современные микропроцессоры типа Pe ium, обеспечивая такие возможности, как 32-битную адресацию почти неограниченных объемов памяти, многозадачный режим с одновременным выполнением нескольких программ, аппаратные средства защиты операционной системы и прикладных программ друг от друга, богатый набор дополнительных эффективных команд и способов адресации, в то же время могут работать (и часто работают) в режиме первых микропроцессоров типа 8086, используя всего лишь 1 мегабайт оперативной памяти, 16-разрядные операнды (т. е. числа в диапазоне до 216-1=65535) и ограниченный состав команд. Поскольку программирование на языке ассемблера напрямую затрагивает аппаратные возможности микропроцессора, прежде всего, следует выяснить, в какой степени программист может использовать новые возможности микропроцессоров в своих программах, и какие проблемы программной несовместимости могут при этом возникнуть. Первые персональные компьютеры корпорации IBM, появившиеся в 1981 г. и получившие название IBM PC, использовали в качестве центрального вычислительного узла 16-разрядный микропроцессор с 8-разрядной внешней шиной I el 8088. В дальнейшем в персональных компьютерах стал использоваться и другой вариант микропроцессора, 8086, который отличался от 8088 тем, что являлся полностью 16-разрядным.
С тех пор его имя стало нарицательным, и в программах, использующих только возможности процессоров 8088 или 8086, говорят, что они работают в режиме 86-го процессора. В 1983 г. корпорацией I el был предложен микропроцессор 80286, в котором был реализован принципиально новый режим работы, получивший название защищенного. Однако процессор 80286 мог работать и в режиме 86-го процессора, который стали называть реальным. В дальнейшем на смену процессору 80286 пришли модели 80386, i486 и, наконец, различные варианты процессора Pe ium. Все они могут работать и в реальном, и в защищенном режимах. Хотя каждая следующая модель была значительно совершеннее предыдущей (в частности, почти на два порядка возросла скорость работы процессора, начиная с модели 80386 процессор стал 32-разрядным, а в процессорах Pe ium реализован даже 64-разрядный обмен данными с системной шиной), однако с точки зрения программиста все эти процессоры весьма схожи. Основным их качеством является наличие двух режимов работы — реального и защищенного. Строго говоря, в современных процессорах реализован еще и третий режим — виртуального 86-го процессора, или V86, однако в плане использования языка ассемблера этот режим не отличается от обычного режима 86-го процессора, и в этой книге мы его касаться не будем. Реальный и защищенный режимы прежде всего принципиально различаются способом обращения к оперативной памяти компьютера. Метод адресации памяти, используемый в реальном режиме, позволяет адресовать память лишь в пределах 1 Мбайт; в защищенном режиме используется другой механизм (из-за чего, в частности, эти режимы и оказались полностью несовместимыми), позволяющий обращаться к памяти объемом до 4 Гбайт. Другое важное отличие защищенного режима заключается в аппаратной поддержке многозадачности с аппаратной же (т.е. реализованной в самом микропроцессоре) защитой задач друг от друга. Реальный и защищенный режимы имеют прямое отношение к работе операционной системы, установленной на компьютере. В настоящее время на персональных компьютерах типа IBM PC используются в основном два класса операционных систем (оба — разработки корпорации Microsof ): однозадачная текстовая система MS-DOS и многозадачная графическая система Wi dows. Операционная система MS-DOS является системой реального режима; другими словами, она использует только средства процессора 8086, даже если она установлена на компьютере с процессором Pe ium. Система Wi dows — это система защищенного режима; она значительно более полно использует возможности современных процессоров, в частности, многозадачность и расширенное адресное пространство. Разумеется, система Wi dows не могла бы работать с процессором 8086, так как в нем не был реализован защищенный режим. Соответственно двум типам операционных систем, и все программное обеспечение персональных компьютеров подразделяется на два класса: программы, предназначенные для работы под управлением MS-DOS (их часто называют приложениями DOS) и программы, предназначенные для системы Wi dows (приложения Wi dows). Естественно, приложения.
DOS могут работать только в реальном режиме, а приложения Wi dows - только в защищенном. Таким образом, выражения «программирование в системе MS-DOS», «программирование в реальном режиме» и «программирование 86-го процессора» фактически являются синонимами. При этом следует подчеркнуть, что хотя процессор 8086, как микросхема, уже давно не используется, его архитектура и система команд целиком вошли в современные процессоры. Лишь относительно небольшое число команд современных процессоров специально предназначены для организации защищенного режима и распознаются процессором, только когда он работает в защищенном режиме. Целью выполнения данной курсовой работы является получение практических навыков работы программирования на языке ассемблера. Итогом выполнения курсовой работы является разработка алгоритма контроля на четность массива данных, хранящегося в некоторой области памяти и программы на языке ассемблера, реализующий данный алгоритм. СОЗДАНИЕ ПРОГРАММЫ НА АССЕМБЛЕРЕ. Надежность программы достигается, в первую очередь, благодаря ее правильному проектированию, а не бесконечному тестированию. Это правило означает, что если программа правильно разработана в отношении как структур данных, так и структур управления, то это в определенной степени гарантирует правильность ее функционирования. При применении такого стиля программирования ошибки являются легко локализуемыми и устранимыми. В большинстве случаев рекомендуется следующий процесс разработки программы на ассемблере: 1.Этап постановки и формулировки задачи: изучение предметной области и сбор материала в проблемно-ориентированном контексте; определение назначения программы, выработка требований к ней и представление требований, если возможно, в формализованном виде; формулирование требований к представлению исходных данных и выходных результатов; определение структур входных и выходных данных; формирование ограничений и допущений на исходные и выходные данные. 2.Этап проектирования: формирование «ассемблерной» модели задачи; выбор метода реализации задачи; разработка алгоритма реализации задачи; разработка структуры программы в соответствии с выбранной моделью памяти. 3. Этап кодирования: уточнение структуры входных и выходных данных и определение ассемблерного формата их представления; программирование задачи; комментирование текста программы и составление предварительного описания программы. 4. Этап отладки и тестирования: составление тестов для проверки правильности работы программы; обнаружение, локализация и устранение ошибок в программе, выявленных в тестах; корректировка кода программы и ее описания. 5. Этап эксплуатации и сопровождения: настройка программы на конкретные условия использования; обучение пользователей работе с программой; организация сбора сведений о сбоях в работе программы, ошибках в выходных данных, пожеланиях по улучшению интерфейса и удобства рабе ты с программой; модификация программы с целью устранения выявленных ошибок и, при необходимости, изменения ее функциональных возможностей. К порядку применения и полноте выполнения перечисленных этапов нужно подходить разумно.
Не столько потому, что сама конструкция трудна... в конце концов это всего лишь цикл... но просто потому, что она трудна для реализации на ассемблере. Как только код придуман, трансляция достаточно проста. Фаны Си любят цикл FOR этого языка (фактически он проще для кодирования), но вместо него я выбрал синтаксис очень похожий на синтаксис из старого доброго Бейсика: FOR <ident> = <expr1> TO <expr2> <block> ENDFOR Сложность трансляции цикла «FOR» зависит от выбранного вами способа его реализации, от пути, которым вы решили определять правила обработки ограничений. Рассчитывается ли expr2 каждый раз при прохождении цикла, например, или оно обрабатывается как постоянное ограничение? Всегда ли вы проходите цикл хотя бы раз, как в Fortran, или нет. Все становится проще, если вы приверженец точки зрения что эта конструкция эквивалентна: <ident> = <expr1> TEMP = <expr2> WHILE <ident> <= TEMP <block> ENDWHILEP Заметьте, что с этим определением цикла <block> не будет выполнен вообще если <expr1> изначально больше чем <expr2>
1. Разработка системного программного обеспечения
2. Системное программное обеспечение
3. Проблемное и системное программное обеспечение
4. Системное и программное обеспечение
5. Обзор современного программного обеспечения управления проектами
9. Разработка программного обеспечения решения нелинейных уравнений
10. Программное обеспечение пункта обмена валюты банка
11. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРОВ
12. Классификация программного обеспечения ЭВМ
13. Программное обеспечение персональных компьютеров
14. Сравнительный анализ каскадной и спиральной моделей разработки программного обеспечения
15. Продуктовая политика организации (на примере продвижения услуг программного обеспечения)
16. Разработка программного обеспечения
17. Анализ программного обеспеченния обучения и воспитания глубоко умственно отсталых детей
18. Структура программного обеспечения региональной экоинформационной системы
19. Виды программного обеспечения, операционной система
21. Вредоносное программное обеспечение
25. История развития прикладного программного обеспечения
26. Конфигурирования программного обеспечения алгоритма OSPF на маршрутизаторе
27. Программное обеспечение для создания видеоклипов
28. Программное обеспечение персонального компьютера
29. Программное обеспечение для ЭВМ
30. Крупнейшие производители операционных систем и программного обеспечения
32. Бухгалтерский и налоговый учет покупаемого программного обеспечения
33. Легализация программного обеспечения
34. Аппаратное и программное обеспечение простых микропроцессорных систем
35. Виды программного обеспечения. Общие требования к программным системам
36. Методика работы с модулем "Реализация и склад" программного обеспечения "ПАРУС"
41. Прикладное программное обеспечение
43. Программное обеспечение Lotus-Notes
44. Программное обеспечение Линукс
45. Программное обеспечение системы принятия решений адаптивного робота
46. Программное обеспечение ЭВМ и языки программирования
47. Программное обеспечение. Операционная система
48. Проектирование процесса тестирования программного обеспечения
49. Разработка базы данных и прикладного программного обеспечения для автобусного парка
50. Разработка интернет – магазина по продаже программного обеспечения
51. Разработка прикладного программного обеспечения деятельности предприятия в системе клиент-сервер
52. Разработка программного обеспечения для нахождения корней биквадратного уравнения
57. Реинжиниринг программного обеспечения
58. Технологический процесс разработки программного обеспечения
59. Корпоративная локальная компьютерная сеть на предприятии по разработке программного обеспечения
62. Революция в программном обеспечении УЧПУ
63. Программное обеспечение базы данный "Экологический мониторинг"
66. Расчётно-пояснительная записка к курсовой работе по ОМПТ
67. Пояснительная записка к выполнению расчетной работы по дисциплине "информатика"
68. Расчетно-пояснительная записка по расчету винтового конвейера
73. Рамон Дель Валье-Инклан. Сонаты. Записки маркиза де Брадомина
74. Новое звучание главы «Морфий» из повести «Записки юного врача»
75. Объяснительная записка Дворянина Н.А.Бердяева в Департамент полиции (1898)
77. Системный подход к содержанию дипломного проекта в техническом вузе
79. Состав бухгалтерской отчетности. Пояснительная записка
80. Санитарно-техническое оборудование зданий. Пояснительная записка
81. Финансовое обеспечение инвестиционных проектов
82. Обзор программных продуктов для расчета инвестиционных проектов
83. Адальберт Штифтер. Записки моего прадеда
84. Загадка “Государя”: учебник для диктаторов или “записки” политолога?
89. Пейзаж в "Записках охотника" И.С. Тургенева
91. Проект новой подстанции для обеспечения электроэнергией нефтеперерабатывающего завода
93. Разработка проекта зоны кратковременного отдыха
94. Проект "Глобалстар". Геодезические спутники /ERS-1,ERS-2/
95. Проблемы обеспечения продовольствием и перенаселение Земли
96. Планирование обеспечения горючим воинской части в мирное время
97. Экспертиза проекта генплана промышленного предприятия