4490

Ассемблер. Об ассемблере

Доклад

Информатика, кибернетика и программирование

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

Русский

2013-06-06

24.38 KB

8 чел.

Об ассемблере

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

Когда-то ассемблер был языком, без знания которого нельзя было заставить компьютер сделать что-либо полезное. Постепенно ситуация менялась. Появлялись более удобные средства общения с компьютером. Но, в отличие от других языков, ассемблер не умирал, более того он не мог сделать этого в принципе. Почему? В поисках ответа попытаемся понять, что такое язык ассемблера вообще.

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

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

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

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

Типичный современный компьютер (на базе i486 или Pentium) состоит из следующих компонентов (рис. 1).

Рис. 1. Компьютер и периферийные устройства

Из рисунка видно, что компьютер составлен из нескольких физических устройств, каждое из которых подключено к одному блоку, называемому системным. Если рассуждать логически, то ясно, что он играет роль некоторого координирующего устройства. Давайте заглянем внутрь системного блока (не нужно пытаться проникнуть внутрь монитора — там нет ничего интересного, к тому же это опасно): открываем корпус и видим какие-то платы, блоки, соединительные провода. Чтобы понять их функциональное назначение, посмотрим на структурную схему типичного компьютера (рис. 2). Она не претендует на безусловную точность и имеет целью лишь показать назначение, взаимосвязь и типовой состав элементов современного персонального компьютера.

Рис. 2. Структурная схема персонального компьютера

Обсудим схему на рис. 2 в несколько нетрадиционном стиле. Человеку свойственно, встречаясь с чем-то новым, искать какие-то ассоциации, которые могут помочь ему познать неизвестное. Какие ассоциации вызывает компьютер? У меня, к примеру, компьютер часто ассоциируется с самим человеком. Почему?

У компьютера есть органы восприятия информации из внешнего мира — это клавиатура, мышь, накопители на магнитных дисках. На рис. 2 эти органы расположены справа от системных шин.  У компьютера есть органы “переваривающие” полученную информацию — это центральный процессор и оперативная память.  И, наконец, у компьютера есть органы речи, выдающие результаты переработки. Это также некоторые из устройств справа.

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

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

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

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


 

А также другие работы, которые могут Вас заинтересовать

85989. Нелинейная регрессия 599.5 KB
  Записать уравнения прямых линий регрессии и построить их на корреляционном поле. Рассмотреть различные виды уравнений регрессии из набора предлагаемого пакетом MS Excel. Провести сравнение полученных уравнений регрессии и выбрать наиболее адекватное из них.
85990. ОПРЕДЕЛЕНИЕ МОЛЯРНОЙ МАССЫ ЭКВИВАЛЕНТА МЕТАЛЛА 67.27 KB
  Цель работы: рассчитать эквивалентную массу металла (Me), измерив, объем водорода, выделившегося при его взаимодействии с кислотой. База эксперимента: Теоретическая: понятия эквивалент, эквивалентное число, эквивалентное количество вещества, эквивалентная масса (объем) или молярная масса (объем) эквивалента вещества.
85991. СУБЪЕКТЫ МЕЖДУНАРОДНЫХ ОТНОШЕНИЙ 93.64 KB
  События в мире показывают что закономерный характер развития международных отношений требует иного подхода и иных оценок которые не сразу адекватно воспринимаются исследователями дисциплины. Сознательная деятельность людей как проявление особенностей исторического детерминизма Естественно-историческое развитие международных отношений не отрицает а предполагает сознательную деятельность людей. Выше мы уже выяснили что основной функцией международных отношений является процесс взаимодействия субъектов.
85992. ГЕОПОЛИТИЧЕСКИЕ АСПЕКТЫ ТЕОРИИ МЕЖДУНАРОДНЫХ ОТНОШЕНИЙ 82.92 KB
  Например в России прошел II Всероссийский конгресс политологов а в Беларуси ряд международных конференций и семинаров. Распад СССР как геополитическая катастрофа Афганистан Косово и Средняя Азия как плацдармы контроля две войны России в Чечне с целью сохранения целостности страны и контроля за добычей нефти в Каспии. В данном случае он просто повторил опыт царской России. Замятин приводит в этой связи интересный пример: Так политическое и военное соперничество России и Великобритании в Средней Азии во второй половине XIX в.
85993. ОСНОВНЫЕ ТЕОРИИ, МЕТОДИКИ И СТРУКТУРЫ ПРИНЯТИЯ РЕШЕНИЙ ВО ВНЕШНЕЙ ПОЛИТИКЕ 59.97 KB
  Теории и анализ принятия решений в области внешней политики обозначились еще в 1950е гг. Объектом теорий принятия решений во внешней политике являются не общие проблемы касающиеся например предмета и сущности международных отношений конфликта или другие а конкретные вопросы связанные с действиями государства. Некоторые исследователи справедливо отмечают что изучение детерминант внешней политики без учета процесса принятия решений может оказаться или напрасной потерей времени поскольку результаты не будут иметь практического значения...
85994. ВНЕШНЕПОЛИТИЧЕСКИЙ ПРОЦЕСС 60.01 KB
  Ответы на этот вопрос призваны дать социологический и политический анализы внешней политики. Втретьих существует четкое осознание противоречия между с одной стороны требованиями максимально высокого профессионализма во внешней патетике а с другой императивами сохранения и укрепления и в этой сфере демократических начал. Оно ведет к поиску путей и средств оптимального преодоления названного противоречия какими оказываются многочисленные общественные организации по проблемам внешней политики как внутри социальной и политической элит так...
85995. МЕСТО И РОЛЬ КОНФЛИКТОВ ТЕОРИИ МЕЖДУНАРОДНЫХ ОТНОШЕНИЙ 123.4 KB
  Понятие конфликта Проблема конфликта является одной из сложнейших в теории международных отношений. Оставаясь важнейшим элементом международных отношений она переходит в качественно иное состояние наполняя внутреннюю жизнь любого субъекта напряженностью и возможной взрывоопасностью. Хотя среди аналитиков нет единого мнения в вопросе определения конфликта они в общем соглашаются что под конфликтом в международных отношениях понимается особый вид внешнеполитического взаимодействия субъектов прежде всего государств который выражается в...
85996. ПОНЯТИЕ И СУЩНОСТЬ МЕЖДУНАРОДНЫХ ОТНОШЕНИЙ 155.5 KB
  В русском языке понятие «международные отношения» существенно расходится с вроде бы родственным ему «international relations» в английском языке, на котором почти исключительно создавалась эта наука. В нашем понимании «международные отношения» в изначальном и прямом...
85997. ОСОБЕННОСТИ СОВРЕМЕННОГО МИРА И ИХ ВЛИЯНИЕ НА МЕЖДУНАРОДНЫЕ ОТНОШЕНИЯ И ВНЕШНЮЮ ПОЛИТИКУ РЕСПУБЛИКИ БЕЛАРУСЬ 56.64 KB
  В современных условиях глобализация как важнейшая особенность международных отношений вызывает неоднозначную оценку. Сущность глобализации Сам термин глобализация по своей внутренней определенности предполагает формирование подлинного мира в котором по мнению некоторых аналитиков стираются географические границы социальных и культурных систем и сами люди во все большей степени осознают исчезновение подобных границ. Тем не менее глобализация имеет объективные источники и следовательно является естественным ходом истории. Таким образом...