Тема урока:
Низкоуровневые языки программирования. Язык ассемблера.
Машинно-ориентированные языки — изредка выделяемая группа языков программирования.
Машинно-ориентированные языки — изредка выделяемая группа языков программирования.
К ней относятся языки, наборы операторов и выразительные средства которых существенно зависят от низкоуровневых деталей архитектуры компьютера: набора инструкций процессора, структуры памяти и так далее.
Машинно-ориентированные языки обладают специфическими преимуществами и недостатками, в частности:
высокое качество создаваемых программ (компактность и скорость выполнения);
возможность использования конкретных аппаратных ресурсов;
предсказуемость размеров объектного кода и заказов памяти;
для составления эффективных программ разработчику необходимо знать систему команд и особенности функционирования данной аппаратной платформы;
трудоемкость процесса составления программ (особенно на машинных языках), неразвитость инструментов верификации и тестирования;
низкая скорость разработки;
низкая переносимость.
Низкоуровневый язык программирования (язык программирования низкого уровня) — язык программирования, близкий к программированию непосредственно в машинных кодах используемого реального или виртуального (например,
Java, Microsoft .NET) процессора.
Низкоуровневый язык программирования (язык программирования низкого уровня) — язык программирования, близкий к программированию непосредственно в машинных кодах используемого реального или виртуального (например,
Java, Microsoft .NET) процессора.
Для обозначения машинных команд обычно применяется мнемоническое обозначение. Это позволяет запоминать команды не в виде последовательности двоичных нулей и единиц, а в виде осмысленных сокращений слов человеческого языка (обычно английских).
Мнемоника – это система различных приёмов, облегчающих запоминание и увеличивающих объём памяти путём образования искусственных ассоциаций.
Иногда одно мнемоническое обозначение соответствует целой группе машинных команд, выполняющих одинаковое действие над разными ячейками памяти процессора. Кроме машинных команд языки программирования низкого уровня могут предоставлять дополнительные возможности, такие как макроопределения (макросы).
Более того, для одного и того же процессора существует несколько видов языка ассемблера. Они совпадают в машинных командах, но различаются набором дополнительных функций (директив и макросов).
Язык ассемблера — язык программирования низкого уровня, мнемонические команды которого (за редким исключением) соответствуют инструкциям процессора вычислительной системы.
Язык ассемблера — язык программирования низкого уровня, мнемонические команды которого (за редким исключением) соответствуют инструкциям процессора вычислительной системы.
Трансляция программы в исполняемый машинный код производится ассемблером (от англ. assembler — сборщик) — программой-транслятором, которая и дала языку ассемблера его название.
Трансляция программы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке, эквивалентную по результатам выполнения первой.
Процесс трансляции программы на языке ассемблера в объектный код принято называть ассемблированием.
В отличие от компилирования, ассемблирование — более или менее однозначный и обратимый процесс.
В языке ассемблера каждой мнемонике соответствует одна машинная инструкция, в то время как в языках программирования высокого уровня за каждым выражением может скрываться большое количество различных инструкций.
Вид низкоуровневого языка программирования
|
Достоинства (4-5)
|
Недостатки (3-5)
|
Применение (7-8)
|
Ассемблер
|
|
|
|
Контрольные вопросы:
1. Что такое дизассемблер?
2. Дайте описание операционной системе KolibriOS, перечислите её преимущества.
3. Перечислите системные требования KolibriOS к аппаратному обеспечению.
4. Опишите ассемблер FASM, перечислите его преимущества.
5. Заполните таблицу