Что обозначает понятие уровень языка программирования кратко
Обновлено: 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.
В качестве аргументов функций можно использовать константы, переменные и выражения. Например:
- Языки низкого уровня (машинные коды и ассемблер)
- Средний уровень ( C, Фортран …. )
- Высокий уровень (C++, Java, Python, Ruby, JavaScript . )
Машинные языки (Самый низкий уровень)
Некоторые работают с большой скоростью (красные стрелки): процессор черпает из памяти команды и манипулирует данными, видеокарта – особенно в 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 – вычитание) представляют вид выполняемой операции, операнды и адреса. Каждой команде на языке ассемблера соответствует команда на языке кодовых комбинаций.
Язык ассемблера упрощает запись команд, облегчает поиск в ней ошибок, обеспечивает лучший обзор программы и простоту внесения исправлений в программу.
Перед исполнением программа должна быть переведена с языка ассемблера на язык кодовых комбинаций и в таком виде помещена в память микропроцессорной системы. Этот перевод осуществляется на компьютере с помощью программы трансляции, называемой ассемблером.
Язык ассемблера (так же, как и язык кодовых комбинаций) индивидуален для каждого типа микропроцессора и микроконтроллера.
Следующий уровень языка программирования — язык высокого уровня. Языки высокого уровня близки к обычному математическому языку, описывающему процесс решения задачи, поэтому они легко усваиваются. Кроме того, они обеспечивают большую компактность программы (сложные вычислительные процессы представляются короткими записями), что улучшает обзор программы и выявление в ней ошибок.
Для программирования в машинных кодах и кодах Ассемблера необходимо досконально знать архитектуру процессора (микроконтроллера), набор команд, владеть хотя бы основами программирования. Для написания программ на языке высокого уровня достаточно знать основы программирования. Поэтому языки Ассемблера постепенно вытесняются языками высокого уровня: например ассемблер для микроконтроллеров заменяется языком Си.
Читайте также: