219
НИЗКОУРОВНЕВОЕ ПРОГРАММИРОВАНИЕ
ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ
Ходиев Ш.И.
Т
ашкентский университет информационных технологий имени
Мухаммада Аль Хоразмий,
aaaaa20@ramdler.ru
Низкоуровневое программирование –
это программирование,
основанное на прямом использовании возможностей и особенностей
конкретной вычислительной системы. Для того чтобы писать программы на
этом уровне, необходимо знать архитектуру аппаратной части системы и
языки низкого уровня. Отметим, что различают три разновидности
низкоуровневых языков:
машинный код; мнемокод; ассемблер.
В данной работе рассматриваются возможности языка низкого уровня
для создания программ, когда необходимо учитывать также архитектуру
аппаратной части.
Работа написана на основе создания транслирующих
систем и опыта ведения курсов по языкам и технологиям программирования.
Практические возможности языка Ассемблер
.
Любая программа на
языке самого высокого уровня по
сути представляет собой
последовательность машинных кодов. А раз так, то всегда остается
теоретическая возможность написать ту же программу, но уже на языке
ассемблера. Чем можно обосновать необходимость разработки Windows
-
приложений на языке ассемблера? Приведем следующие аргументы:
-
язык ассемблера позволяет программисту полностью контролировать
создаваемый им программный код и оптимизировать его по своему
усмотрению;
-
компиляторы языков высокого уровня
помещают в загрузочный
модуль программы избыточную
информацию, поэтому эквивалентные
исполняемые модули, исходный текст которых написан на ассемблере,
имеют в несколько раз меньший размер;
-
при программировании на ассемблере сохраняется полный доступ k
аппаратным ресурсам компьютера;
-
приложение, написанное на ассемблере,
как правило, быстрее
загружается в оперативную память компьютера;
-
приложение, написанное на ассемблере, обладает, как правило, более
высокой скоростью работы и ответа на действия пользователя [1,2].
В языке ограничены средства описания данных, обычные для языков
высокого уровня. Номенклатура структур хранения данных архитектурно
ограничена скалярами, векторами,
списками, сетью. Но эти структуры
хранения дают возможность представить в памяти машины практически все
известные структуры
представления. –
массивы, записи, таблицы, стеки,
очереди, деки, списки, деревья, графы.
Тогда работа с ними позволяет
разрабатывать и более сложные программы, к которым относится
компиляторы, интерпретаторы. Поводом к их созданию отмечается
необходимость
создания
препроцессора
для
новых
команд
220
микропроцессоров. В работе [2] рассматриваются
возможности работ со
сложными структурами данных а также элементы компиляции.
Практикум работы на ассемблере включает
возможности
использования ассемблера для решения задач не только прикладного, но и
системного программирования, создание полнофункциональных программ
для современных операционных платформ.
Помимо программирования наиболее известных алгоритмов
целочисленных арифметических действий, в
том над многобайтными
числами,
преобразований чисел, интересных практических задач, проблем
ввода вывода с клавиатуры и на экран, отметим также работу с файлами,
программирование ХММ
-
расширений, реализация общей концепции типа
данных, алгоритмы трансляции, которые в
конечном итоге сводятся к
работам со структурами данных. Интерес представляет и разработка
динамических
DLL
библиотек.
Язык ассемблера содержит мощные средства поддержки модульного
подхода в рамках структурного программирования. В языке ассемблера эта
технология поддерживается в основном с помощью механизма процедур и,
частично, механизма макроподстановок [3,4]
Тематика и содержание учебной дисциплины.
Содержание тем
лекционных учебных занятий дисциплины по машинно
-
ориентированному
языку программирования Ассемблер включает следующие. 1.
Архитектура
машины.
Общий обзор машины. Архитектура микропроцессора. Структура и
процесс обработки ассемблерной программы. Форматы команд. Адресация.
Связь ассемблера с языками высокого уровня. Макросредства. Директивы
повторения в макросах. Условные директивы. Способы использования
макросов.
2. Синтаксис и семантика машинно
-
ориентированного языка.
Структура программы. Типы данных. Директивы
определения данных и
сегментации. Операции и выражения. Ассемблирование и линковка
программы. Интерфейс с языками высокого уровня.
Do'stlaringiz bilan baham: