Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
19
Добавлен:
17.03.2016
Размер:
126.46 Кб
Скачать
  1. Структура команд

Алгоритм, заданный в виде последовательности команд в машинных кодах, называется машинной программой.

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

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

Операционная часть команды предназначена для представления кода операции (арифметической или логической).

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

Таким образом, адрес – это некоторый код, определяющий местонахождение операнда в памяти ЭВМ.

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

В зависимости от количества операндов команды могут быть безадресными одноадресными, двухадресными и даже трёхадресными.

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

Типовая структура одноадресной команды изображена на рис.3.4., где адрес операнда – это адрес ячейки (регистра), где хранится число, участвующее в операции и куда следует поместить число - результат операции.

Типовая структура двухадресной команды изображена на рис.3.5., где адрес 1 – го операнда (адрес приемника (destination)) – это адрес ячейки (регистра), где хранится первое из чисел, участвующих в операции; адрес 2 – го операнда (адрес источника (source)) – это адрес ячейки (регистра), где хранится второе участвующее в операции число.

Рис. 3.4. Одноадресная команда (CLR X, INC X, DEC X).

Рис. 3.5. Двухадресная команда (MOV Y, X; ADD Y, X).

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

В СМ ЭВМ (линии PDP-11) положение 1-го и 2-го операндов меняются местами.

Трехадресные команды используются только в некоторых ЭВМ, например в ЕС ЭВМ. Типовая структура трехадресной команды:

Рис. 3.6 Трехадресная команда.

здесь адрес 3 – го операнда – это адрес ячейки (регистра), куда следует поместить число, полученное в результате выполнения операции.

  1. Виды машинных команд

Современные ЭВМ автоматически выполняют несколько сотен различных команд. Множество машинных команд, реализующих различные операции в процессоре, называется системой команд процессора.

Все машинные команды можно разделить на группы по видам выполняемых операций:

  • операции пересылки данных внутри ЭВМ;

  • арифметические операции над данными;

  • операции сдвига;

  • логические операции над данными;

  • операции передачи управления;

  • операции обращения к внешним устройствам ЭВМ (ввода /вывода);

  • обслуживающие и вспомогательные операции (например, команды сброса, останова, работы с битами слова состояния процессора).

Команды пересылки данных наиболее широко применяются в ЭВМ и позволяют пересылать данные из/в регистры процессора в/ из ячейки памяти.

Арифметические команды позволяют проводить арифметические действия (сложение, вычитание, деление, умножение и сравнение) над данными, представленными в различном формате. Для выполнения более сложных математических действий нужно или использовать команды математического сопроцессора (FPU – Floating Point Unit) или написать соответствующие пользовательские подпрограммы, реализующие эти действия на базе элементарных математических операций.

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

Логические команды так же рассматривают свои операнды как набор битов и позволяют выполнять над ними различные логические (булевы) операции.

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

Операции безусловной передачи управления требуют после данной команды выполнения не следующей по порядку, а той, адрес которой в явном или неявном виде указан в адресной части.

Операции условной передачи управления требуют тоже передачи управления по адресу, указанному в адресной части команды, но только в том случае, если выполняется некоторое заранее оговоренное для этой команды условие. Это условие в явном или неявном виде указано в коде операции.

Команды ввода/вывода осуществляют обмен информации между программой и внешними устройствами.

Соседние файлы в папке Лекции по информатике