Эволюция языка программирования Ассемблер

Автор работы: Пользователь скрыл имя, 06 Марта 2013 в 18:48, курсовая работа

Описание

Актуальность. Несмотря на то, что в настоящее время программист может использовать большое количество языков программирования, которые гораздо проще Ассемблера, знание Ассемблера и умение программировать на нем никогда не будут лишними. Этот факт подтверждается следующими доводами: 1. На других языках программирования не всегда возможно написать приложение, которое полно бы удовлетворяло требованиям. А в некоторых случаях полностью невозможно. На языке программирования Ассемблер можно написать любое приложение.
2. Иногда языки программирования высокого уровня не могут обеспечить требуемое быстродействие. А приложение созданное на Ассемблере всегда быстродействующее.

Содержание

Введение 5
1. Понятие, назначение и составные элементы систем программирования 7
2. Классификация языков программирования 11
2.1. Машинно-ориентированные языки 11
2.1.1. Машинный язык 11
2.1.2. Языки символического кодирования 12
2.1.3. Автокоды 13
2.1.4. Макрос 14
2.2 Машинно-независимые языки 14
2.2.1. Проблемно – ориентированные языки 15
2.2.2. Универсальные языки 15
2.2.3. Диалоговые языки 16
2.2.4. Непроцедурные языки 17
3. Ассемблер 18
3.1 Программирование на языке Ассемблера 18
3.2 Описание различных версий Ассемблера 21
3.2.1. Turbo Assembler фирмы Borland 21
3.2.2. Macro Assembler 24
3.2.3. Netwide Assembler 26
3.2.4. Краткое описание других видов Ассемблера 27
Заключение 30
Список использованной литературы 32

Работа состоит из  1 файл

Assembler.doc

— 124.50 Кб (Скачать документ)

Министерство образования и науки РФ

ФЕДЕРАЛЬНОЕ АГЕНТСТВО  ПО ОБРАЗОВАНИЮ

Адыгейский  Государственный Университет

ФИЗИЧЕСКИЙ  ФАКУЛЬТЕТ

 

 

 

 

 

 

Курсовая работа

 

По дисциплине: «Системное программное обеспечение»

 

«Эволюция языка программирования Ассемблер»

 

 

Выполнил: студент группы 4А2

специальности АСОИУ

Хмиляр М.А.

Научный руководитель:

Киздермишев А.А.

Рецензент:

Плисенко О.А.

 

 

 

Майкоп 2005 год

 

СОДЕРЖАНИЕ

 

 

Введение            5

1. Понятие, назначение  и составные элементы систем  программирования           7

2. Классификация языков программирования    11

2.1. Машинно-ориентированные языки     11

2.1.1. Машинный язык       11

2.1.2. Языки символического  кодирования   12

2.1.3. Автокоды        13

2.1.4. Макрос        14

2.2 Машинно-независимые языки      14

2.2.1. Проблемно – ориентированные языки   15

2.2.2. Универсальные языки      15

2.2.3. Диалоговые языки      16

2.2.4. Непроцедурные языки      17

3. Ассемблер          18

3.1 Программирование на языке  Ассемблера    18

3.2 Описание различных версий  Ассемблера    21

3.2.1. Turbo Assembler фирмы Borland    21

3.2.2. Macro Assembler       24

3.2.3. Netwide Assembler      26

3.2.4. Краткое описание  других видов Ассемблера  27

Заключение          30

Список использованной литературы      32

 

 

ВВЕДЕНИЕ

 

 

Прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования. Существует множество языков программирования, но мы остановимся на Ассемблере.

 

Актуальность.

Несмотря на то, что в настоящее время программист может использовать большое количество языков программирования, которые гораздо проще Ассемблера, знание Ассемблера и умение программировать на нем никогда не будут лишними. Этот факт подтверждается следующими доводами:

1. На других языках программирования не всегда возможно написать приложение, которое полно бы удовлетворяло требованиям. А в некоторых случаях полностью невозможно. На языке программирования Ассемблер можно написать любое приложение.

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

3. Размер приложений созданных  на языках высокого уровня  имею гораздо больший размер, чем приложения созданные на  Ассемблере.

4. Язык Ассемблер позволяет работать непосредственно с аппаратными средствами, что в некоторых случаях дает программисту преимущество и требуемый результат. Приложение на языке высокого уровня работает с аппаратными устройствами через написанные модули, т.е. не позволит программисту что-либо изменить, а, следовательно, получить требуемый результат.

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

 

Цель работы.

1. Описать эволюцию языка программирования  Ассемблер.

2. Описать различия разных версий Ассемблера.

3. Выявить преимущества языка  программирования Ассемблер.

4. Выявить недостатки  языка программирования Ассемблер.

 

1. ПОНЯТИЕ, НАЗНАЧЕНИЕ И СОСТАВНЫЕ  ЭЛЕМЕНТЫ СИСТЕМ ПРОГРАММИРОВАНИЯ

 

 

Неотъемлемая часть  современных ЭВМ – системы  программного обеспечения, являющиеся логическим продолжением логических средств  ЭВМ, расширяющим возможности аппаратуры и сферу их использования. Система программного обеспечения, являясь посредником между человеком и техническими устройствами машины, автоматизирует выполнение тех или иных функций в зависимости от профиля специалистов и режимов их взаимодействия с ЭВМ. Основное назначение программного обеспечения – повышение эффективности труда пользователя, а также увеличение пропускной способности ЭВМ посредством сокращения времени и затрат на подготовку и выполнение программ. Программное обеспечение ЭВМ можно подразделить на общее и специальное программное обеспечение[1].

Общее программное обеспечение  реализует функции, связанные с  работой ЭВМ, и включает в себя системы программирования, операционные системы, комплекс программ технического обслуживания.

Специальное программное  обеспечение включает в себя пакеты прикладных программ, которые проблемно ориентированы на решение вполне определенного класса задач.

Системой программирования называется комплекс программ, предназначенный для автоматизации программирования задач на ЭВМ. Система программирования освобождает проблемного пользователя или прикладного программиста от необходимости написания программ решения своих задач на неудобном для него языке машинных команд, и предоставляют им возможность использовать специальные языки более высокого уровня. Для каждого из таких языков, называемых входными или исходными, система программирования имеет программу, осуществляющую автоматический перевод (трансляцию) текстов программы с входного языка на язык машины. Обычно система программирования содержит описания применяемых языков программирования, программы-трансляторы с этих языков, а также развитую библиотеку стандартных подпрограмм. Важно различать язык программирования и реализацию языка.

Язык – это набор правил, определяющих систему записей, составляющих программу, синтаксис и семантику используемых грамматических конструкций[2].

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

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

Язык высокого уровня - это язык программирования, предназначенный  для удовлетворения требований программиста; он не зависит от внутренних машинных кодов компьютера любого типа. Языки высокого уровня используют для решения проблем и поэтому их часто называют проблемно-ориентированными языками. Каждая команда языка высокого уровня эквивалентна нескольким командам в машинных кодах, поэтому программы, написанные на языках высокого уровня, более компактны, чем аналогичные программы в машинных кодах.

Реализация языка – это системная программа, которая переводит (преобразует) записи на языке высокого уровня в последовательность машинных команд.

Имеется два основных вида средств реализации языка: компиляторы  и интерпретаторы.

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

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

Следует заметить, что  любой язык программирования может  быть как интерпретируемым, так и компилируемым, но в большинстве случаев у каждого языка есть свой предпочтительный способ реализации. Языки Фортран, Паскаль в основном компилируют; язык Ассемблер почти всегда интерпретирует; языки Бейсик и Лисп широко используют оба способа.

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

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

По набору входных  языков различают системы программирования одно- и многоязыковые. Отличительная  черта многоязыковых систем состоит в том, что отдельные части программы можно составлять на разных языках и помощью специальных обрабатывающих программ объединять их в готовую для исполнения на ЭВМ программу.

Для построения языков программирования используется совокупность общепринятых символов и правил, позволяющих описывать алгоритмы решаемых задач и однозначно истолковывать смысл созданного написания. Основной тенденцией в развитии языков программирования является повышение их семантического уровня с целью облегчения процесса разработки программ и увеличения производительности труда их составителей[3].

 

2. КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

 

 

2.1. Машинно-ориентированные  языки

 

Машинно-ориентированные  языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.)[4]. Машинно-ориентированные языки позволяют использовать все возможности и особенности машинно-зависимых языков:

  • высокое качество создаваемых программ (компактность и скорость выполнения);
  • возможность использования конкретных аппаратных ресурсов;
  • предсказуемость объектного кода и заказов памяти;
  • для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ;
  • трудоемкость процесса составления программ (особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок;
  • низкая скорость программирования;
  • невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов.

Машинно-ориентированные языки по степени автоматического программирования подразделяются на классы.

 

 

2.1.1. Машинный язык

 

Отдельный компьютер  имеет свой определенный машинный язык, ему предписывают выполнение указываемых операций над определяемыми ими операндами, поэтому машинный язык является командным. Однако, некоторые семейства ЭВМ (например, ЕС ЭВМ, IBM/370/ и др.) имеют единый машинный язык для ЭВМ разной мощности. В команде любого из них сообщается информация о местонахождении операндов и типе выполняемой операции.

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

 

 

2.1.2. Языки символического кодирования

 

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

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

 

2.1.3. Автокоды

 

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

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

Информация о работе Эволюция языка программирования Ассемблер