Что обозначает понятие уровень языка программирования кратко

Обновлено: 04.07.2024

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

Различают следующие языки программирования:

· машинно – оpиентиpованные (языки низкого уровня,

· машинно-независимые (языки высокого уровня).

Машинные языки и машинно-ориентированные языки — это языки низкого уровня, требующие указания машинных команд для обработки данных.

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

Языки высокого уровня делятся на:

· алгоритмические (Basic, Pascal, Cи и др.), которые предназначены для однозначного строгого описания алгоритмов;

· логические (Prolog, Lisp и др.), которые ориентированы не на разработку алгоритма решения задачи, а на формализованное описание задачи с тем, чтобы решение следовало из составленного описания.

· объектно-ориентированные (Object Pascal, C++, Java и др.), в основе которых лежит понятие объекта, сочетающего в себе данные и определенные действия над ними. Программа на объектно-ориентированном языке решает некоторую задачу в форме системы взаимодействующих объектов.

Достоинства и недостатки машинных языков

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

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

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

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

Язык ассемблера.

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

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

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

Преимущества алгоритмических языков перед машинными.

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

Основные преимущества алгоритмических языков таковы:

· текст программы на алгоритмическом языке более понятен, чем на машинном языке;

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

· формат операторов языка позволяет с помощью одного оператора задавать целый этап обработки данных с помощью нескольких машинных команд;

· требуемые операции задаются с помощью обыкновенных математических обозначений;

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

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

Основные компоненты алгоритмического языка

Алгоритмический язык (как и любой другой язык) образуют три составляющие: алфавит, синтаксис и семантика.

Алфавит — это фиксированный для данного языка набор символов (т.е. "букв алфавита"), из которых должен состоять текст на этом языке.

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

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

Основные понятия алгоритмического языка.

Каждое понятие алгоритмического языка подразумевает некоторую синтаксическую единицу (конструкцию) и определяемые ею свойства программных объектов или процесса обработки данных.

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

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

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

Опеpации определяют действия, совершаемые над данными.

· аpифметические опеpации + , - , * , / и дp. ;

· логические опеpации и, или, не;

· опеpация сцепки (иначе, "присоединения", "конкатенации") символьных значений дpуг с другом с образованием одной строки; изображается знаком "+".

Данные — те величины, обpабатываемые пpогpаммой. Имеется тpи основных вида данных: константы, пеpеменные и массивы.

· Константы — это данные, которые зафиксированы в тексте программы и не изменяются в процессе ее выполнения.

o Числовые 7.5, 12;

o логические да (истина) и нет (ложь);

o символьные "А", "+"и т.д.

o литеpные или текстовые "abcde", "информатика", "" (пустая строка).

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

· Массив — последовательность однотипных элементов, число которых фиксировано и которым присвоено одно общее имя. Положение отдельного элемента в массиве определяется его индексами и именем масива (одним, в случае одномерного массива, или несколькими, если массив многомерный).

Выpажения — пpедназначаются для выполнения вычислений и состоят из констант, пеpеменных, указателей функций ( напpимеp, экспонента - exp(x) ), объединенных знаками опеpаций.

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

Различают выражения арифметические, логические и строковые.

· Арифметические выражения служат для определения одного числового значения. Например, (1+sin(x))/2.

В качестве аргументов функций можно использовать константы, переменные и выражения. Например:

Уровни языков программирования - 1

  1. Языки низкого уровня (машинные коды и ассемблер)
  2. Средний уровень ( C, Фортран …. )
  3. Высокий уровень (C++, Java, Python, Ruby, JavaScript . )

Машинные языки (Самый низкий уровень)

Уровни языков программирования - 2

Некоторые работают с большой скоростью (красные стрелки): процессор черпает из памяти команды и манипулирует данными, видеокарта – особенно в 3D играх, потребляет огромные объёмы текстур, фигур, координат пикселей и прочих объектов для построения изображения на экране монитора. Другим (в силу ограничения скорости обмена информацией) столь высокие показатели и не нужны. Разнообразные внутренние и внешние устройства подключены на схеме зелёными стрелками.

Внутренний мир процессора

  • Мы полностью хозяева положения, имеем самые широкие возможности использования процессора и аппаратуры компьютера.
  • Для нас доступны все варианты организации и оптимизации кода.
  • Необходимо обладать обширными знаниями по функционированию процессоров и учитывать большое количество аппаратных факторов при выполнении кода.
  • Создание программ чуть более сложных чем приведенный пример приводит к резким увеличениям затрат времени по написанию кода и его отладку.
  • Платформозависимость: программа, созданная для одного процессора, как правило, не будет функционировать на других. Возможно, и для данного процессора, в остальных режимах его работы, потребуется редактирование кода.

Язык ассемблера (низкий уровень)

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

Языки группы C/Фортран (средний/высокий уровень)

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

Развитие языков высокого уровня

Дальнейший прогресс

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

Заключение

В настоящее время самые распространённые – языки ООП. Java, с момента возникновения, всегда находится в топе, обычно в тройке, востребованных языков. Помимо ООП, содержит элементы функционального программирования, и вы можете комбинировать разные стили составления ваших программ. Спектр применения Java весьма широк – это бизнес задачи, реализация веб-серверов (backend), основной язык создания Android-приложений, кроссплатформенные среды программирования и рабочих мест (IDE/АРМ) и моделирования и многое другое. Особенно сильны позиции Java в Enterprise секторе – области корпоративного программного обеспечения, которая требует качественный и долгоживущий код, реализацию самых сложных бизнес-логик.

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

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

Процесс поиска ошибок в программе называется тестированием, процесс уст­ранения ошибок – отладкой.

Уровни языков программирования

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

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

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

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

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

Поколения языков программирования

Языки программирования принято делить на пять поколений.

Расцвет второго поколения языков программирования пришелся на конец 1950-х – начало 1960-х годов. Тогда был разработан символический ассемблер, в котором появилось понятие переменной. Он стал первым полноценным языком программирования. Благодаря его возникновению заметно возросли скорость разработки и надежность программ.

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

С начала 1970-х годов по настоящее время продолжается период языков четверто­го поколения.


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

Рождение языков пятого поколения произошло в середине 1990-х годов. К ним от­носятся также системы автоматического создания прикладных программ с помощью визуальных средств разработки, без знания программирования. Главная идея, которая закладывается в эти языки, – возможность автоматического формирования результи­рующего текста на универсальных языках программирования (который потом требует­ся откомпилировать). Инструкции же вводятся в компьютер в максимально наглядном виде с помощью методов, наиболее удобных для человека, не знакомого с программи­рованием.

Языки программирования высокого уровня

Fortran (Фортран). Это первый компилируемый язык, созданный Джимом Бэ-кусом в 1950-е годы. Программисты, разрабатывавшие программы исключительно на ас­семблере, выражали серьезное сомнение в возможности появления высокопроизводи­

тельного языка высокого уровня, поэтому основным критерием при разработке компи­ляторов Фортрана являлась эффективность исполняемого кода.

Хотя в Фортране впервые был реализован ряд важнейших понятий программи­рования, удобство создания программ было принесено в жертву возможности получе­ния эффективного машинного кода. Однако для этого языка было создано огромное ко­личество библиотек, начиная от статистических комплексов и кончая пакетами управ­ления спутниками. Поэтому Фортран продолжает активно использоваться во многих организациях, а сейчас ведутся работы над очередным стандартом Фортрана F2k. Име­ется стандартная версия Фортрана – HPF (High Performance Fortran) для параллельных суперкомпьютеров со множеством процессоров.

Algol (Алгол). Компилируемый язык, созданный в 1960 году. Он был призван заменить Фортран, но из-за более сложной структуры не получил широкого распро­странения. В 1968 году была создана версия Алгол 68, по своим возможностям и сего­дня опережающая многие языки программирования, однако из-за отсутствия достаточ­но эффективных компьютеров для нее не удалось своевременно создать хорошие ком­пиляторы.

Pascal (Паскаль). Язык Паскаль, созданный в конце 1970-х годов основоположни­ком множества идей современного программирования Никлаусом Виртом, во многом напоминает Алгол, но в нем ужесточен ряд требований к структуре программы и име­ются возможности, позволяющие успешно применять его при создании крупных про­ектов.

Basic (Бейсик). Для этого языка имеются и компиляторы, и интерпретаторы, а по популярности он занимает первое место в мире. Он создавался в 1960-х годах в каче­стве учебного языка и очень прост в изучении.

С (Си). Данный язык был создан в лаборатории Bell и первоначально не рас­сматривался как массовый. Он планировался для замены ассемблера, чтобы иметь воз­можность создавать столь же эффективные и компактные программы и в то же время не зависеть от конкретного типа процессора.

Си во многом похож на Паскаль и имеет дополнительные средства для прямой работы с памятью (указатели). На этом языке в 1970-е годы написано множество при­кладных и системных программ и ряд известных операционных систем (Unix).

C++ (Си++). Си++ – это объектно-ориентированное расширение языка Си, соз­данное Бьярном Страуструпом в 1980 году. Множество новых мощных возможностей, позволивших резко повысить производительность программистов, наложилось на унаследованную от языка Си определенную низкоуровневость, в результате чего соз­дание сложных и надежных программ потребовало от разработчиков высокого уровня профессиональной подготовки.

Java (Джава, Ява). Этот язык был создан компанией Sun в начале 1990-х годов на основе Си++. Он призван упростить разработку приложений на основе Си++ путем ис­ключения из него всех низкоуровневых возможностей. Но главная особенность этого языка – компиляция не в машинный код, а в платформно-независимый байт-код (каж­дая команда занимает один байт). Этот байт-код может выполняться с помощью интер­претатора – виртуальной Java-машины JVM (Java Virtual Machine), версии которой созданы сегодня для любых платформ.

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

Особое внимание в развитии этого языка уделяется двум направлениям: под­держке всевозможных мобильных устройств и микрокомпьютеров, встраиваемых в бы­товую технику (технология Jini), а также созданию платформно-независимых про­граммных модулей, способных работать на серверах в глобальных и локальных сетях с различными операционными системами (технология Java Beans). Пока основной недос­таток этого языка – невысокое быстродействие.

Срочно?
Закажи у профессионала, через форму заявки
8 (800) 100-77-13 с 7.00 до 22.00

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

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

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

Программу на языке записывают в текстовом редакторе. Т.к. процессор понимает только цифровой двоичный код, написанные команды преобразуются в машинный код с помощью программы – переводчика, называемого транслятор. Различают два вида трансляторов:

1) интерпретаторы – обрабатывают текст непосредственно во время написания программы, т.е. каждую строку по отдельности;

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

Работа программы состоит в обработке данных – констант и переменных. Действия над константами и переменными определяют операторы. Операторявляетсяинструкцией языка.

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

Различают уровни (по отношению к естественному, человеческому) языков программирования:

- низкого уровня – машинные языки;

- языки ассемблера – близки к машинному;

- языки высокого уровня – приближены к человеку.

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

Наряду с указанными недостатками язык кодовых комбинаций имеет и достоинства. Программа на этом языке оказывается наиболее эффективной, она занимает минимальный объем памяти и быстрее ис­полняется.

Пример: Для представления машинного языка используем DOS программу DEBUG — специальная программа, входящая в состав утилит MS-DOS, для ввода и пошагового выполнения программ, написанных на машинном языке или с помощью команд ассемблера (рис. 3.16).


Рисунок 3.16 – Просмотр содержимого ячеек памяти в окне программы DEBUG

Текст программы, представленной в шестнадцатеричном формате:

Команда Назначение Мнемоника
B8 23 01 Переслать шест. значение 0123 в AX MOV AX,0123
05 25 00 Прибавить шест. значение 0025 к AX ADD AX,0025
8B D8 Переслать содержимое AX в BX MOV BX,AX
03 D8 Прибавить содержимое AX к BX ADD BX,AX
8B CB Переслать содержимое BX в CX MOV CX,BX
2B C8 Вычесть содержимое AX из AX (очистка AX) SUB CX,AX
Нет операции

Трудности программирования уменьшаются при использовании языка ассемблера. В этом языке вместо кодовых комбинаций применя­ется мнемоническая форма записи операций (мнемоники), выполняемых в микропро­цессоре. Такой мнемонической записью (в виде сочетания букв, взятых из соответствующих английских слов: MOV – перемещение, ADD – сложение, SUBB – вычитание) представляют вид выполняемой операции, операнды и адреса. Каждой команде на языке ассемблера соответствует команда на языке кодовых комбинаций.

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

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

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

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




Для программирования в машинных кодах и кодах Ассемблера необходимо досконально знать архитектуру процессора (микроконтроллера), набор команд, владеть хотя бы основами программирования. Для написания программ на языке высокого уровня достаточно знать основы программирования. Поэтому языки Ассемблера постепенно вытесняются языками высокого уровня: например ассемблер для микроконтроллеров заменяется языком Си.

Конструкция языков программирования

Назначение языков программирования

Языки программирования

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

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

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

Программу на языке записывают в текстовом редакторе. Т.к. процессор понимает только цифровой двоичный код, написанные команды преобразуются в машинный код с помощью программы – переводчика, называемого транслятор. Различают два вида трансляторов:

1) интерпретаторы – обрабатывают текст непосредственно во время написания программы, т.е. каждую строку по отдельности;

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

Работа программы состоит в обработке данных – констант и переменных. Действия над константами и переменными определяют операторы. Операторявляетсяинструкцией языка.

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

Различают уровни (по отношению к естественному, человеческому) языков программирования:

- низкого уровня – машинные языки;

- языки ассемблера – близки к машинному;

- языки высокого уровня – приближены к человеку.

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

Наряду с указанными недостатками язык кодовых комбинаций имеет и достоинства. Программа на этом языке оказывается наиболее эффективной, она занимает минимальный объем памяти и быстрее ис­полняется.

Пример: Для представления машинного языка используем DOS программу DEBUG — специальная программа, входящая в состав утилит MS-DOS, для ввода и пошагового выполнения программ, написанных на машинном языке или с помощью команд ассемблера (рис. 3.16).


Рисунок 3.16 – Просмотр содержимого ячеек памяти в окне программы DEBUG

Текст программы, представленной в шестнадцатеричном формате:

Команда Назначение Мнемоника
B8 23 01 Переслать шест. значение 0123 в AX MOV AX,0123
05 25 00 Прибавить шест. значение 0025 к AX ADD AX,0025
8B D8 Переслать содержимое AX в BX MOV BX,AX
03 D8 Прибавить содержимое AX к BX ADD BX,AX
8B CB Переслать содержимое BX в CX MOV CX,BX
2B C8 Вычесть содержимое AX из AX (очистка AX) SUB CX,AX
Нет операции

Трудности программирования уменьшаются при использовании языка ассемблера. В этом языке вместо кодовых комбинаций применя­ется мнемоническая форма записи операций (мнемоники), выполняемых в микропро­цессоре. Такой мнемонической записью (в виде сочетания букв, взятых из соответствующих английских слов: MOV – перемещение, ADD – сложение, SUBB – вычитание) представляют вид выполняемой операции, операнды и адреса. Каждой команде на языке ассемблера соответствует команда на языке кодовых комбинаций.

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

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

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

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

Для программирования в машинных кодах и кодах Ассемблера необходимо досконально знать архитектуру процессора (микроконтроллера), набор команд, владеть хотя бы основами программирования. Для написания программ на языке высокого уровня достаточно знать основы программирования. Поэтому языки Ассемблера постепенно вытесняются языками высокого уровня: например ассемблер для микроконтроллеров заменяется языком Си.

Читайте также: