Реферат: Эволюция языка программирования Assembler

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

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

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

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

 

 

 

 

 

 

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

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

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

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

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

Хмиляр М.А.

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

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

Рецензент:

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

Майкоп 2005 год

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

СОДЕРЖАНИЕ

Введение                                                                                                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.TurboAssembler фирмыBorland                                21

<span MS Mincho"">3.2.2.

<span MS Mincho";mso-ansi-language:EN-US">Macro<span MS Mincho""> <span MS Mincho";mso-ansi-language:EN-US">Assembler<span MS Mincho"">                                                          <span MS Mincho"">24

3.2.3.NetwideAssembler                                                       26

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

Заключение                                                                                           30

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

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

ВВЕДЕНИЕ

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

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

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

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

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

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

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

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

Цельработы.

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

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

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

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

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

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

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

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

-<span Times New Roman"">                   

высокоекачество создаваемых программ (компактность и скорость выполнения);

-<span Times New Roman"">                   

возможностьиспользования конкретных аппаратных ресурсов;

-<span Times New Roman"">                   

предсказуемостьобъектного кода и заказов памяти;

-<span Times New Roman"">                   

длясоставления эффективных программ необходимо знать систему команд и особенностифункционирования данной ЭВМ;

-<span Times New Roman"">                   

трудоемкостьпроцесса составления программ (особенно на машинных языках и ЯСК), плохозащищенного от появления ошибок;

-<span Times New Roman"">                   

низкаяскоростьпрограммирования;

-<span Times New Roman"">                   

невозможностьнепосредственного использования программ, составленных на этих языках, на ЭВМдругих типов.

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

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

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

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

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

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

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

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

2.1.3. Автокоды

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

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

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

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

Развитыеавтокоды получили название Ассемблеры.Сервисные программы и пр., как правило, составлены на языках типа Ассемблер.

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA;mso-bidi-font-weight:bold">

2.1.4. Макрос

Язык, являющийся средством для заменыпоследовательности символов описывающих выполнение требуемых действий ЭВМ наболее сжатую форму — называется Макрос(средство замены).

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

Макросодинаковоможет работать, как с программами, так и с данными.

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

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

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

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

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

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

Проблемныхязыков очень много, например:

Фортран, Алгол– языки, созданные для решения математических

 задач;

Simula, Слэнг — для моделирования;

Лисп, Снобол– для работы со списочными структурами.

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

Универсальные языкибыли созданы для широкого круга задач: коммерческих,научных, моделирования и т.д. Первый универсальный язык был разработан фирмой IBM, ставший в последовательности языковПл/1. Второй по мощностиуниверсальный язык называется Алгол-68.Он позволяет работать с символами, разрядами, числами с фиксированной иплавающей запятой. Пл/1 имеетразвитую систему операторов для управления форматами, для работы с полямипеременной длины, с данными организованными в сложные структуры, и дляэффективного использования каналов связи. Язык учитывает включенные во многиемашины возможности прерывания и имеет соответствующие операторы. Предусмотренавозможность параллельного выполнения участков программ.

Программыв Пл/1 компилируются с помощьюавтоматических процедур. Язык использует многие свойства Фортрана, Алгола, Кобола. Однако ондопускает не только динамическое, но и управляемое и статистическоераспределения памяти.

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

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

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

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

Одним изпримеров диалоговых языков является Бэйсик.

Бэйсикиспользует обозначения подобные обычным математическимвыражениям. Многие операторы являются упрощенными вариантами операторов языка Фортран. Поэтому этот язык позволяетрешать достаточно широкий круг задач.

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

Непроцедурные языкисоставляют группу языков, описывающих организациюданных, обрабатываемых по фиксированным алгоритмам (табличные языки игенераторы отчетов), и языков связи с операционными системами.

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

Табличныеметоды легко осваиваются специалистами любых профессий.

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

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

3. АССЕМБЛЕР

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

Сегодняповсюду используются такие языки высокого уровня как Бейсик, Фортран и Паскаль.Возможно, вы уже знакомы, по крайней мере, с одним языком высокого уровня. Есливы постоянно пользуетесь персональным компьютером IBM, то вы знаете, чтоинтерпретатор Бейсика является частью системы. Зачем же возиться еще с однимязыком программирования, тем более с таким, который сулит определенныетрудности? Очевидно, даже располагая современными могучими языками, вы все ещенуждаетесь в Ассемблере из-за его эффективности и точности.

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

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

         <span MS Mincho"">Ясно,что эффективность и точность языка Ассемблера дают определенные преимущества.Но его детализированность создает и некоторые проблемы. Когда же стоит избиратьдля программирования язык Ассемблера?

<span MS Mincho"">         Конечно, вы должны пользоватьсяпрограммами на языке Ассемблера, когда нет другого способа написать программу.Например, программисты фирмы IBM писали с использованием процедур Ассемблеравсе программы управления устройствами ввода-вывода для IBM PC. Для управленияустройствами ввода-вывода и системой прерываний, потребовалась та точностьязыка Ассемблера, которую не может обеспечить ни один другой язык программирования.Аналогично, на языке Ассемблера в фирме IBM писались процедуры диагностики,которые должны проверять каждую деталь аппаратуры.

<span MS Mincho"">         Язык Ассемблера необходим также и в техслучаях, когда главными являются рабочие характеристики программы. Это можетбыть время исполнения или конечный размер программы. Библиотека математическихпроцедур Фортрана — пример программы, требующей хороших характеристик, как вотношении времени, так и размера. Математические процедуры являются частьюлюбой программы на Фортране, поэтому они должны занимать как можно меньшеместа. Кроме того, эти процедуры управляют всеми математическими функциями вфортрановской программе и часто используются. Следовательно, они должныисполняться быстро.

<span MS Mincho"">         Какая программа не подходит для языка Ассемблера?Конечно, вы можете написать на нем любую программу, однако с большой программойлучше работать в        языке высокогоуровня, таком как Бэйсик или Паскаль. Эти языки позволяют вам сосредоточитьсяна своей проблеме. Вам не приходится непосредственно иметь дело с тонкостямиаппаратного оборудования и процессора. Языки высокого уровня позволяют вамотступить назад и за деревьями увидеть лес.

<span MS Mincho"">         Очевидно далее, что вы нуждаетесь всоединении программ языка Ассемблера с программами языков высокого уровня.Здесь мы ограничимся программированием на языке Ассемблера для тех задач, длякоторых он хорошо подходит, таких как управление вводом-выводом.

<span MS Mincho"">         И последнее, при программировании наязыке Ассемблера и только через написание программ на этом уровне детализациивы можете понять как работает машина на самом нижнем уровне. Если вы хотитеузнать о компьютере все, вы должны быть знакомы с его языком ассемблера.Единственный способ добиться этого писать программы на этом языке.

<span MS Mincho"">        

Самыми популярными на сегодняшнийдень являются пакеты TurboAssembler(TASM)фирмы Borland, MacroAssemblerforWindows32 (MASM32), созданный Hutch(на основе старого MASMфирмы Microsoft), а также FlatAssembler(FASM), и NetwideAssembler(NASM), развиваемый командой NASMDevelopmentTeam. Все эти ассемблеры предоставляютвесьма широкие возможности для программиста. На них можно писать программы какпод DOS, так и под Windows[7].

            Существует также множество других видов ассемблера, числокоторых растет. Например: CodeX Assembler, Gema Assembler,Light Macro Assembler (LASM), Lazy Assembler (LZASM), Table Driven Assembler(TDASM), NewBasic++ Assembler (NBASM), TMA Macro Assembler идр.

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:EN-US;mso-fareast-language: RU;mso-bidi-language:AR-SA">

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

3.2.1. Turbo Assembler фирмы Borland

Турбо Ассемблер фирмыBorland представляет собой многопроходный ассемблер с разрешением опережающихссылок, скоростью ассемблирования до 48000 строк в минуту (на компьютере IBMPS/2, модель 60), совместимый с макроассемблером фирмы Microsoft MASM идополнительной возможностью использования режима расширенного синтаксиса.Независимо от вашего опыта в программировании вы, несомненно, оцените этиособенности, а также ряд других средств, которые значительно облегчаютпрограммирование на Ассемблере[8].

Среди таких средств можнократко упомянуть следующие:

—  полная поддержка процессора 80386;

—  улучшенная синтаксическая проверка типов;

—  упрощенные директивы определения сегментов;

—  улучшенное управление листингом;

—  расширения инструкций POP и PUSH;

— расширенный  оператор CALL с аргументами и необязательнымпараметром языка;

—  локальные метки;

—  локальные идентификаторы в стеке и аргументывызова в процедурах;

—  структуры и объединения;

—  вложенные директивы;

—  режим QUIRK, эмулирующий MASM;

—  полная отладка на уровне исходного текста спомощью Турбо отладчика;

—  встроенная утилита генерации перекрестныхссылок (TCREF);

—  файлы конфигурации и командные файлы.

Турбо Ассемблер являетсямощным Ассемблером, работающим с командной строкой, который воспринимает вашиисходные файлы (файлы с расширением *.asm*) и создает из них объектные модули(файлы с расширением *.obj*). После этого вы можете использоватьпрограмму-компоновщик фирмы Borland TLINK.EXE, отличающуюся высокой скоростьюкомпоновки, для компоновки полученных объектных модулей и создания выполняемыхфайлов (файлов с расширением *.exe*).

Турбо Ассемблер создандля работы с процессорами серии 80х86 и 80х87 (более подробно набор инструкцийпроцессоров серии 80х86/80х87 описан в соответствующих руководствах фирмыIntel).

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

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

         ‑возможность использования одинаковых имён для обозначения членов различныхструктур;

         ‑применение операторов HIGHи LOW;

         ‑предварительное вычисление выражений EQU;

         ‑корректное управление сегментами данных объединённых в группы;

         ‑усовершенствованное использования директив;

         ‑разумное использование скобок в выражениях.

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

Традиционнымспособом, с помощью которого объединяются программы, написанные на С++ и Ассемблере,является разделительная компиляция с последующей компоновкой в один исполняемыйфайл. При этом можно использовать компилятор BorlandC++, который вызывает TurboAssemblerдля трансляции ассемблернойпрограммы.

Разработка программы на языке TurboAssemblerвключает четыре этапа:

1-й этап. Подготовка исходного текстапрограммы и оформление его в виде текстового файла (одного или нескольких) спомощью какого-нибудь редактора в формате DOS с расширением *.asm*.

2-й этап. Ассемблирование программы сприменением транслятора Tasm,результатом которого является объектный файл с расширением *.obj*. Когда программа состоит изнескольких файлов (модулей), то их ассемблирование производится независимо другот друга. Если в процессе трансляции будут обнаружены ошибки, то объектный файлне создаётся, а формируется сообщение об ошибка

еще рефераты
Еще работы по программированию, базе данных