Язык ассемблера — это система обозначений, используемая для представления в удобочитаемой форме программ, записанных в машинном коде.
Он позволяет программисту пользоваться текстовыми мнемоническими (то есть легко запоминаемыми человеком) кодами, по своему усмотрению присваивать символические имена регистрам компьютера и памяти, а также задавать удобные для себя способы адресации. Кроме того, он позволяет использовать различные системы счисления (например, десятичную или шестнадцатеричную) для представления числовых констант, использовать в программе комментарии и др.
Перевод программы с языка ассемблера на машинный язык осуществляется специальной программой, которая также называется ассемблером и является, по сути, простейшим транслятором.
Важной составной частью архитектуры ЭВМ является система команд.
Система команд любой ЭВМ обязательно содержит следующие группы команд обработки информации:
Команды передачи данных (перепись), копирующие информацию из одного места в другое.
Арифметические операции, которым фактически обязана своим названием вычислительная техника - это сложение, вычитание, умножение,деление и т.д..
Логические операции, позволяющие компьютеру анализировать обрабатываемую информацию - это операции И, ИЛИ, НЕ и т.д..
Сдвиги двоичного кода влево и вправо. В некотрых частных случаях умножение и деление вообще может быть заменено сдвигом.
Команды ввода и вывода информации для обмена с внешними устройствами.
Команды управления, реализующие нелинейные алгоритмы.
Команда ЭВМ обычно состоит из двух частей - операционной и адресной.
Операционная часть (код информации - КОП) указывает, какое действие необходимо выполнить с информацией.
Код операции можно представить себе как некоторый условный номер в общем списке системы команд. В основном этот список построен в соответствии с определенными внутренними закономерностями.
Адресная часть описывает, где используемая информация хранится. Команды могут быть одно-, двух- и трехадресные в зависимости от числа участвующих в них операндов.
Рассматривая систему команд, нельзя не упомянуть о двух современных взаимно конкурирующих направлениях в ее построении: компьютер с полным набором команд CISC (Complex Instruction Set Computer) и с ограниченным набором – RISC (Reduced Instruction Set Computer). Разделение возникло из-за того, что основную часть времени компьютеру приходится выполнять небольшую часть из своего набора команд, остальные же используются эпизодически (в одной из популярных статей это в шутку сформулировано в виде следующей наглядной аналогии: “20% населения выпивают 80% пива”). Таким образом, если существенно ограничить набор операций до наиболее простых и коротких, зато тщательно оптимизировать их, получится достаточно эффективная и быстродействующая RISC-машина. Правда за скорость придется платить необходимостью программной реализации “отброшенных” команд, но часто эта плата бывает оправданной: например, для научных расчетов или машинной графики быстродействие существенно важнее проблем программирования. Подробнее вопросы, связанные с системой команд современных микропроцессоров, будут рассмотрены ниже в этой главе.