Домашнее задание для ПО 1.11 системное программирование на 05.02.19
план-конспект урока

Склемин Алексей Анатольевич
Ассемблеры 
Программирование на языке Ассемблера Язык Ассемблера — система записи программы с детализацией до отдельной машинной команды, позволяющая использовать мнемоническое обозначение команд и символическое задание адресов. Поскольку в разных аппаратных архитектурах разные программно-доступные компоненты (система команд, регистры, способы адресации), язык Ассемблера аппаратно-зависимый. Программы, написанные на языке Ассемблера могут быть перенесены только на вычислительную систему той же архитектуры.  Программирование на языке Ассемблера позволяет в максимальной степени использовать особенности архитектуры вычислительной системы. До недавнего времени воспринималась как аксиома, что ассемблерная программа всегда является более эффективной и в смысле быстродействия, и в смысле требований к памяти. Для Intelархитектуры это и сейчас так.  Но это уже не так для RISK-архитектур. Для того, чтобы программа могла эффективно выполняться в вычислительной среде с распараллеливанием на уровне команд, она должна быть определенным образом оптимизирована, то есть, команды должны быть расположены в определенном порядке, допускающим их параллельное выполнение. Программист просто не сможет покомандно оптимизировать всю свою программу. С задачей такой оптимизации более эффективно справляются компиляторы.  Доля программ, которые пишутся на языках Ассемблеров в мире, неуклонно уменьшается, прикладное программирование на языках Ассемблеров применяется только по недомыслию. Язык Ассемблера «в чистом виде» применяется только для написания отдельных небольших частей системного ПО: микроядра ОС, самых нижних уровней драйверов — тех частей, которые непосредственно взаимодействуют с реальными аппаратными компонентами. Этим занимается узкий круг программистов, работающих в фирмах, производящих аппаратуру и ОС. Зачем же нам тогда изучать построение Ассемблера?  Хотя разработка программ, взаимодействующих с реальными аппаратными компонентами, — редкая задача, в современном программировании при разработке прикладного, а еще более — промежуточного ПО довольно часто применяется технологии виртуальных машин. Для выполнения того или иного класса задач программно моделируется некоторое виртуальное вычислительное устройство, функции которого соответствуют нуждам этого класса задач. Для управления таким устройством для него может быть создан соответствующий язык команд. (Широко известные примеры: MI AS/400, JVM.) Говоря шире, любую программу можно представить себе как виртуальное «железо», решающее конкретную задачу. (Конечный пользователь обычно не видит разницы между программой и аппаратурой и часто говорит не «мне программа выдала то-то», а «мне компьютер выдал то-то»). В некоторых случаях интерфейс программы удобно представить в виде системы команд, а следовательно, нужен соответствующий Ассемблер. (Это, конечно, относится не к программам «для чайников», а к инструментальным средствам программистов, системам моделирования).
 

Скачать:

ВложениеРазмер
PDF icon sistemnoe_programmirovanie.pdf2.15 МБ

Предварительный просмотр:

По теме: методические разработки, презентации и конспекты

Домашнее задание для ПО 1.11 системное программирование на 06.02.19

Предложения языка Ассемблера Предложения языка Ассемблера описывают команды или псевдокоманды (директивы). Предложения-команды задают машинные команды вычислительной системы; обработка Ассемблеро...

Домашнее задание для ПО 1.11 системное программирование на 08.02.19

Регистры Программа в машинном коде состоит из различных сегментов для определения данных, для машинных команд и для сегмента, названного стеком, для хранения адресов. Для выполнения арифметически...

Домашнее задание для ПО 2.11 системное программирование на 05.02.19

Написать программу преобразования десятичного числа в шестнадцатеричное....

Домашнее задание для ПО 2.11 системное программирование на 07.02.19

Составить программу, которая будет печатать ромб одним из значков (* или + или #) Выбор значков организовать оператором switch....

Домашнее задание для ПО 2.11 системное программирование на 08.02.19

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

Домашнее задание для ПО 2.11 системное программирование на 09.02.19

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

Домашнее задание для ПО 2.11 системное программирование на 12.02.19

Написать программу преобразования десятичного числа в шестнадцатеричное....