Виды форматов команд в эвм. Команды микропроцессора. Основные команды ЭВМ

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

Адресная часть содержит инф. о адресах операндов.

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

А1, А2 - адреса операндов (для однооперандных команд имеется одно поле А1)

А3 - адрес, по которому размещается результат выполняемой операции.

А4 - адрес следующей команды, подлежащей выполнению.

Данный формат является избыточным и не используется в ЭВМ т.к. команды (исп. команды переходов) выполняются в естественном порядке следования их в программе. Это позволяет процессору автоматически вычислять адрес следующей команды, прибавляя к текущему адресу А, выполняемой команды, ее длину L байт.

Поэтому в форматах команд поле А4 не указывается Это приводит к трёхадресной команде, имеющей формат:

Операнды размещаются по адресам А1, А2 , а результат выполнения операции заносится по адресу первого операнда А1 при этом значение операнда теряется. Использование аккумулятора позволяет по умолчанию размещать один из операндов в нём и не указывать адрес этого операнда в команде. В этом случае команда одноадресная и имеет формат

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

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

Исходя из логики выполнения, команды разбиты на следующие группы: пересылки данных, арифметические, сдвига, логические, передачи управления, ввода-вывода и работы со строками.

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

Входящие в состав микропроцессора компоненты указывают на то, что он является процессором с программным управлением. Некоторые компоненты - программный счетчик (счетчик команд СК), стек, регистр команд (РК) служат для обработки команд. Арифметико-логическое устройство, триггер переноса, регистры общего назначения (РОН) и регистр адреса данных (РА) служат для обработки данных. Все остальные компоненты, а именно: дешифратор команд (дешифратор кода операции ДКОП) и блок управления и синхронизации (БУ) управляют работой других компонентов. Взаимодействие компонентов осуществляется по внутренней шине данных. Связь МП с другими блоками (ЗУ и устройствами ввода-вывода) происходит по адресной щине, шине данных (внешней) и управляющей шине.

При выполнении каждой команды ЭВМ проделывает определенные стандартные действия.

  • 1. Согласно содержимому счетчика адреса команд считывается очередная команда программы (ее код обычно заносится на хранение в регистр команд).
  • 2. Счетчик команд автоматически изменяется так, чтобы в нем содержался адрес следующей команды.
  • 3. Считанная в регистр команд операция расшифровывается, извлекаются необходимые данные и над ними выполняются требуемые действия.

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

После выборки команды останова ЭВМ прекращает обработку программы. Для выхода из этого состояния требуется либо запрос от внешних устройств, либо перезапуск машины.

Пр и мер 3.2. Описать процесс выборки и исполнения команды, по которой содержимое регистра РОН суммируется с содержимым аккумулятора Л и результат операции фиксируется в аккумуляторе.

Команда однобайтовая с прямой регистровой адресацией. В коде команды (10000001) 2 = (81) 16 первые пять старших разрядов определяют код операции; три последних - код адреса регистра С. Команда записана в ячейку ОЗУ с адресом (номером) (0176), 6 . Число (2Б) |6 записано в регистр С РОН. В аккумулятор Л записано число (ЗА) 16 .

Процесс выборки и исполнения команды можно условно разбить на несколько этапов.

  • 1. Адрес команды (0176) 16 записывается в регистр адреса данных (РА).
  • 2. Адрес команды из РА по шине адреса поступает в ОЗУ.
  • 3. ОЗУ находит ячейку с указанным адресом и считывает команду в буферный регистр ОЗУ.
  • 4. Команда из буферного регистра ОЗУ по внешней шине данных, буфер данных (БД), внутренней шине данных поступает в РК.
  • 5. Дешифратор кода операции (ДКОП) распознает, что выборка команды закончена и содержимое аккумулятора и регистра С РОН необходимо подвергнуть суммированию.
  • 6. Содержимое РА увеличивается на единицу, и формируется адрес следующей ячейки ОЗУ (0177) 16 .
  • 7. Блок управления и синхронизации (БУ) вырабатывает последовательность сигналов, под воздействием которых числа (ЗА) 16 из аккумулятора и (2Б) 16 из регистра С РОН поступают в АЛУ, где производится операция суммирования: (ЗА) 16 + (2Б) 16 = = (69) 16 = (01 101001) 2 .
  • 8. Результат операции записывается в аккумулятор, замещая в нем прежнее число (ЗА) 16 .
  • 9. Выполнение команды закончено. Начинается выборка следующей команды с адресом (0177) 16 .

Микропроцессор имеет все режимы адресации, однако они обладают определенными особенностями, присущими данному процессору. Непосредственная адресация предполагает, что операнд занимает одно из полей команды, а следовательно, выбирается из оперативной памяти одновременно с ней. В зависимости от форматов обрабатываемых процессором данных непосредственный операнд может иметь длину 8 или 16 бит, что обозначается соответственно data8 и data 16.

Механизмы адресации операндов, находящихся в регистровой и оперативной памяти, существенно различаются. К регистровой памяти допускается лишь прямая регистровая адресация. При этом в команде указывается номер регистра, содержащего операнд. 16-разрядный операнд может находиться в регистрах АХ, ВХ, СХ, DX, DI, SI, SP, ВР, а 8-разрядный - в регистрах AL, АН, BL, ВН, CL, СН, DL и DH.

Регистры общего назначения (РОН) - основные рабочие регистры программ: АХ, ВХ, СХ и DX. К ним можно адресоваться как отдельным, так и однобайтным словом.

Например, АХ - старший байт АН, младший байт AL.

Регистр АХ - аккумулятор, который используется во всех операциях ввода-вывода и в операциях со строками и в арифметических операциях.

Регистр ВХ - базовый регистр, единственный из РОН, используемый в индексной адресации. Он также применяется в вычислениях.

Регистр DX - регистр данных, используемый в операциях ввода-вывода, а также в операциях умножения и деления больших чисел (совместно с АХ).

Любой из РОН может применяться для сложения или вычитания 8- или 16-разрядных величин.

Регистры указателя SP и ВР применяются для обращения к данным в стеке.

Регистр SP (Stack Pointer) - указатель стека, используется для временного хранения адресов и иногда данных, т. е. адресует стек.

Регистр ВР (Base Pointer) - указатель базы, обеспечивает ссылки на параметры (адрес, данные), передаваемые через стек.

Стек - это линейный список, записи в котором выбираются, вставляются и удаляются с одного конца, называемого вершиной стека. Это обеспечивает доступ к записям по «принципу магазина»: последний вошел, первый вышел (Last In First Out - UFO).

Индексные регистры SI и DI используются для адресации (а также для выполнения операций сложения и вычитания). Регистр SI (Source Index) - индекс источника и регистр DI (Destination Index) - индекс приемника применяются в некоторых операциях со строками или символами.

Адресация оперативной памяти имеет особенности, связанные с ее разбиением на сегменты и использованием сегментной группы регистров для указания начального адреса сегмента. 16-разрядный адрес, получаемый в блоке формирования адреса операнда на основе указанного режима адресации, называется эффективным адресом (ЭА). Иногда эффективный адрес обозначается как ЕА (Effective Address). 20-разрядный адрес, который получается в результате сложения эффективного адреса и увеличенного в 16 раз значения соответствующего сегментного регистра, называется физическим адресом (ФА).

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

Прямая адресация предполагает, что эффективный адрес - часть команды, так как ЭА состоит из 16 разрядов и соответствующее поле команды имеет такую же длину.

При регистровой косвенной адресации эффективный адрес операнда находится в базовом регистре ВХ или в одном из ин-

Обозначение имени регистра в квадратных скобках указывает на содержимое соответствующего регистра. Фигурные скобки - символ выбора одного из трех возможных вариантов.

При регистровой относительной адресации эффективный адрес равен сумме содержимого базового или индексного регистра и смещения:

j disp8 I j disp 16 j

Обозначения disp8 и disp 16 указывают на 8- или 16-разряд-ное смещение соответственно.

Эффективный адрес при базово-индексной адресации равен сумме содержимого базового и индексного регистров, определяемых командой:

] у

Наиболее сложен механизм относительной базово-индексной адресации. Эффективный адрес в этом случае равен сумме 8- или 16-разрядного смещения и базово-индексного адреса:

эА=Л вх П + Л 01 П+1 айр8 ,1.

1 |ВР]} 1 1 авр1б

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

  • 1 байт
  • 1 байт
  • 1 байт

КОП d w md reg r/m

1 байт disp L

сімр і і і

[ disp Н

бкр Н І

Рис. 3.2. Форматы двухоперандных команд микропроцессора 18086: а - формат команд типа Я Я и /?5; б - формат команды с непосредственным операндом

Поле КОП содержит код выполняемой операции. Признак указывает на длину операндов. При ы= 1 операция проводится над словами, а при н> = 0 - над байтами. Признак (1 указывает положение приемника результата. Признак с1=, если результат записывается на место операнда, закодированного в поле ге%, и с! = 0, если результат записывается по адресу, закодированному полями (т(1, г/т).

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

Поля тс! и г/т задают режим адресации операнда (табл. 3.4).

Таблица 3.3. Регистры памяти

Таблица 3.4. Режимы адресации операнда

(ВХ) + (81) (ОБ)

(ВХ) + (Б1) + сПзрБ (ОБ)

(ВХ) + (Б1) + сПвр 16 (ОБ)

(ВХ) + (01) (ОБ)

(ВХ) + (01) + (И8р8 (ОБ)

(ВХ) + (О!) + сИвр 16 (ОБ)

(ВР) + (81) (вв)

(ВР) + (Б1) + сИэрБ (вБ)

(ВР) + (Б1) + (Шр16 (ББ)

(ВР) + (01) (вБ)

(ВР) + (01) + сИэрБ (вБ)

(ВР) + (01) + с1 вр 16 (8Б)

(Б1) + (Нерв (ОБ)

(Б1) + сИ8р16 (ОБ)

(оо + аврв (ОБ)

(01) + сН8р 16 (ОБ)

сИвр 16 (ОБ)

(ВР) + сНврБ (вБ)

(ВР) + сП8р16 (вБ)

(ВХ) + с!вр8 (ОБ)

(ВХ) + сП8р16 (ОБ)

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

В командах, использующих непосредственный операнд, признак 5 вместе с признаком определяет разрядность непосредственного операнда, записываемого в команде, и разрядность выполняемой операции (табл. 3.5).

Таблица 3.5. Разрядности операций

Изменение естественного порядка выполнения команд программы осуществляется с помощью команд передачи управления. К ним относятся команды переходов, циклов, вызова подпрограммы и возврата из нее, а также некоторые другие. Классификация команд переходов в ПЭВМ представлена на рис. 3.3.


Физический адрес выполняемой команды определяется содержимым указателя команд 1Р и сегментного регистра команд

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

Регистровая адресация. Операнды (источники и приемники) - это внутренние регистры МП: АХ, ВХ, СХ, ОХ, 8Р, ВР, 81, 01, а в операциях пересылки - дополнительные сегментные регистры.

Пример 3.3. МОУ АН, ВН.

Непосредственная адресация. Операнды - это константы, непосредственно задаваемые в команде МП (байты, слова, двойные слова).

Пример 3.4. МОУ АН, -2.

Адресация ячеек памяти. При вычислении адреса в памяти используются две составляющие - сегмент и смещение относительно его начала.

Пример 3.5. МОУ У1, 31Ь.

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

При косвенной адресации смещение соответствующего операнда в сегменте содержится в одном из регистров МП, например МОУ [ВХ], АЬ. Косвенная адресация позволяет легко организовывать доступ к сложным элементам данных, например к массиву данных. Для обозначения косвенной адресации название регистра заключают в квадратные скобки (ВХ - регистровая адресация, а [ВХ] - косвенная). Обычно в качестве регистра косвенной адресации используются: [ВХ], , и [ВР]. Для [ВХ], , неявно подразумевается сегмент 08, а для [ВР] - сегмент 88.

Косвенная адресация по базе означает, что исполнительный адрес вычисляется как сумма содержимого соответствующего регистра и некоторой константы. Этот способ адресации используется для доступа к полям структуры, начальный адрес которой задается в регистре, а смещение соответствующего поля - константой, записанной непосредственно в команде (применяются базовые регистры [ ВХ], [ВР] с соответствующими сегментами 08, 88).

Прямая индексная адресация эквивалентна косвенной по базе. При этом используются регистры 81, 01 и соответствующий 08-сегмент.

Пример 3.6.

МОУ Х3, О (аналогично МОУ [ХЗ + 01], 0);

МОУ ХЗ[ВХ][ОХ + 2], АН (ХЗ - адрес массива).

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

Пример 3.7.

База - ВХ, ВР. Индексы - 81, 01.

[ВХ + 81], [ВХ + 01] - с сегментом Э8.

[ВР + 81], [ВР + 01] - с сегментом 88.

В общем случае при использовании косвенной адресации исполнительный адрес можно представить следующим образом:

ЕА= [Регистр базы] + [Индексный регистр] + Константа.

Любая из этих компонент может отсутствовать.

Команды пересылки данных имеют общий формат с двумя операндами - источником и приемником,

например МОУ, .

Пр и мер 3.8. Команды пересылок данных:

МОУ АН, ВН

МОУ АН, ВХ

МОУ ОБ, В1, где В1 - адрес ячейки.

Команда ХСНО, - обмен операндов используется для любых РОН и переменных в памяти, кроме двух ячеек памяти.

Ниже приведены примеры команд.

Примеры арифметических команд:

  • ADD , ;
  • ADC , ;
  • INC ;
  • SUB , ;
  • SBB , ;
  • DEC ;
  • MUL ;
  • IMUL ;
  • DIV ;
  • IDIV .

Примеры команд сдвига:

  • SAL , ;
  • SAR , ;
  • SHL , ;
  • SHR , .

Примеры логических команд:

AND, OR, XOR, NOT.

Примеры команд передачи управления:

  • перехода JMP, JZ, JNZ, JCXZ;
  • цикла LOOP;
  • вызова подпрограммы и возврата из нее: CALL, RET;
  • вызова прерывания и возврата из него: INT, IRET.

Примеры дополнительных команд:

  • работы со стеком: PUSH, POP;
  • установки и ояистки флагов: STC, CLC;
  • холостого хода NOP.

Примеры команд ввода/вывода:

  • IN .., ;
  • ОиТ.., .

Примеры команд работы со строками:

MOVS, CMPS, OUTS.

Команды безусловных переходов производят модификацию регистра IP или регистров IP и CS без предварительного анализа каких-либо условий. Существует пять команд безусловных переходов. Все они имеют одинаковую мнемонику JMP и содержат один операнд. Конкретный формат команды определяется соответствующим префиксом и приведен в табл. 3.6.

Таблица 3.6. Машинные коды некоторых команд

Байт кода команды

Схема операции

md reg r/m

г(г/т) - г + г/т

md 000 r/m

г/т = г/т +

(data H)

ас - ас +

md reg r/m

г{г/т) - г{г/т) - (г/т)г

md 101 r/m

г/т = г/т -

(data H)

ас = ас -

001000dw

md reg r/m

г(г/т) = г & г/т

md 100 r/m

г/т = г/т &

(data H)

ас = ас &

000010dw

md reg r/m

г{г/т) = г V г/т

md 001 r/m

г/т = г/т V

(data H)

ас = ас V

Примечание. В столбце «Схема операции» сокращение «ас» означает регистр-аккумулятор, в качестве которого используются регистр АХ при = 1 и регистр АЬ при = 0.

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

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

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

При невыполнении проверяемого условия в 1Р остается его текущее значение, т. е. адрес команды, следующей за командой условного перехода.

Ниже приведены примеры команд переходов различных типов.

Команды условного перехода:

IP- IP+ 2, если условие не выполнено;

IP= IP+2 + disp L, если условие выполнено.

Пример 3.9.

JZ MARK; переход на метку MARK, если ZF = 1.

Команды прямого внутрисегментного перехода:

IP= IP+ А + disp, где А - длина команды перехода (А = 2 или А = 3 в зависимости от длины смещения).

Пример 3.10.

JMP short ptr MARK; переход на метку MARK с использованием 8-разрядного смещения;

JMP near ptr MARK; переход на метку MARK с использованием 16-разрядного смещения.

Команды прямого межсегментного перехода:

IP=JP_H, IP_L CS= CS_H, CS L.

Пример 3.11.

JMP far ptr MARK; переход на метку MARK к команде, находящейся в другом сегменте.

2. Структура ЭВМ и взаимодействие ее основных устройств

2.1. Классические основы построения ЭВМ

Основы построения электронных вычислительных машин в их современном понимании были заложены в 30-е – 40-е годы прошлого века английским математиком Аланом Тьюрингом и американцем венгерского происхождения Джоном (Яношем) Нейманом.

2.2. Архитектура классической ЭВМ

В 1946 году Джоном Нейманом представлена работа, заложившая основы развития вычислительной техники.

Основные положения Неймана :

  1. Машины на электронных элементах должны работать не в десятичной, а в двоичной системе счисления.
  2. Программа должна размещаться в одном из блоков машины – в запоминающем устройстве (ЗУ), обладающем достаточной емкостью и соответствующими скоростями выборки и записи команд программы.
  3. Программа так же, как и числа, с которыми оперирует машина, представляется в двоичном коде. Таким образом, по форме представления команды и числа однотипны. Это обстоятельство приводит к следующим важным последствиям:
  • промежуточные результаты вычислений, константы и другие числа могут размещаться в том же ЗУ, что и программа;
  • числовая форма записи программы позволяет машине производить операции над величинами, которыми закодированы команды программы.
  • Трудности физической реализации ЗУ, быстродействие которого соответствовало бы скорости работы логических схем, требует иерархической организации памяти.
  • Арифметические устройства машины конструируются на основе схем, выполняющих операцию сложения. Создание специальных устройств для вычисления других операций нецелесообразно.
  • В машине используется параллельный принцип организации вычислительного процесса (операции над словами производятся одновременно по всем разрядам).
  • Общая структура классической ЭВМ

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


    Рис. 2.4. Структура классической ЭВМ

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

    Работа всех устройств, входящих в состав ЭВМ выполняются под управлением сигналов, вырабатываемых устройством управления (УУ) . УУ формирует также адреса ячеек памяти, по которым производится обращение для считывания команды, операндов и записи результата выполнения команды. Для выполнения какой-либо машинной операции используется арифметико-логическое устройство АЛУ(АУ). С помощью сигналов управления происходит настройка АУ на выполнение конкретной операции, а ЗУ получает указание, какие данные послать в АУ (откуда их взять), какие операции над ними произвести и куда поместить результат. В современных ЭВМ АЛУ и УУ объединены в общее устройство, называемое центральным процессором (ЦП).

    Оперативное ЗУ (ОЗУ) – быстродействующее запоминающее устройство, работающее непосредственно с АУ и УУ.

    Шины МПС

    В понятие шины вкладывают разное значение при рассмотрении различных вопросов. В простейшем случае под понятием шина подразумевают ряд параллельно проложенных проводников , по которым передаётся двоичная информация. При этом по каждому проводнику передаётся отдельный двоичный разряд. В случае рассмотрения структуры ЭВМ используют понятие - системная шина (при рассмотрении структуры микропроцессора говорят о внутренней шине МП).

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

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

    Команды МПС

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



    Рис 2.5. Формат команды

    Форматом команды называется заранее обговоренная структура полей в её кодах, позволяющая ЭВМ распознавать составные части кода.

    Главным элементом кода команды является код операции (КОП), он определяет, какие действия будут выполнены по данной команде. Под него выделяется N старших разрядов формата. В остальных разрядах размещаются А 1 и А 2 - адреса операндов. А 3 - адрес результата.

    Длина команды зависит от числа адресных полей. По числу адресов команды делятся на:

    Безадресные,

    Одно-, двух-, трехадресные.

    Длина кода команды измеряется в машинных словах.

    Чтобы минимизировать число адресных полей, результат можно размещать по месту хранения одного из операндов (ADD AX , BX ). Либо предварительно размещать один или несколько операндов в специально выделенных регистрах процессора (аккумуляторах). Также во многих типах операций (например, логических) третий, а часто и второй адрес вообще не используется (RET , IRET , JE xx , INC AL ). Оттранслированные команды записываются в соседние ячейки памяти в порядке их следования в программе.

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

    Принципы работы ЭВМ по структуре фон Неймана

    Принципы работы ЭВМ иллюстрируются на рис. 2.6. По адресу команды, которая определяется содержимым СчК, выбирается из соответствующей ячейки ОЗУ слово, представляющее собой очередную команду программы и пересылается в регистр команд РгК. Часть команды (код операции) направляется в дешифратор ДШ. После чего, в соответствии с КОП формируется требуемая последовательность управляющих импульсов, которая подается на те устройства, которые должны выполнять расшифрованную операцию. Если КОП относится к арифметическим или логическим операциям, эти импульсы поступают в АУ.

    По адресной части команды (А 1 – А 3) УУ вырабатывает сигналы управления для ОЗУ, обеспечивающие чтение операндов по адресам А 1 и А 2 , посылку их в АУ и запись результатов по третьему адресу А 3 обратно в ОЗУ. Признаки результата (знак, наличие переполнения, признак нуля и так далее) поступают в УУ , где записываются в специальный регистр признаков (РП).

    После завершения выполнения данной операции, что определяется регистром состояния, в СчК добавляется единица (+1) и в следующем такте из ОЗУ будет выбрана следующая команда программы по порядку номеров ячеек ОЗУ, и затем этот процесс будет повторяться.

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

    Особенности аппаратного и программного управления процессами обработки информации

    Характерная особенность традиционной цифровой системы состоит в том, что алгоритмы обработки и хранения информации в ней жестко связаны со схемотехникой системы. То есть изменение этих алгоритмов возможно только путем изменения структуры системы, замены электронных узлов, входящих в систему, и/или связей между ними. Такая цифровая система часто называется системой на «жесткой логике». Любая система на «жесткой логике» обязательно представляет собой специализированную систему, настроенную исключительно на одну задачу или (реже) на несколько близких, заранее известных задач.

    Это имеет свои преимущества:

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

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

    В то же время большим недостатком цифровой системы на «жесткой логике» является то, что для каждой новой задачи ее надо проектировать и изготавливать заново.

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

    Рис.2.6. Принципы работы ЭВМ по структуре фон Неймана

    Важное преимущество данной системы – универсальность:

    В тоже время присутствуют ряд недостатков:

    1. Любая универсальность обязательно приводит к избыточности. Решение максимально трудной задачи требует гораздо больше средств, чем решение максимально простой и сложность универсальной системы должна быть такой, чтобы обеспечивать решение самой трудной задачи, но чем проще решаемая задача, тем большей становится избыточность системы. Избыточность ведет к увеличению стоимости системы, снижению ее надежности, увеличению потребляемой мощности и т.д.
    2. Кроме того, универсальность, как правило, приводит к существенному снижению быстродействия.

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

    Особенности реализации устройств управления ЭВМ

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

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

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

    Автоматическое управление процессом работы микропрограммной ЭВМ по решению задачи достигается на основе принципа программного управления (ППУ), который составляет ее главную особенность и состоит в следующем:

    1) любая операция, реализуемая устройством, является последовательностью элементарных действий - микроопераций;

    2) для управления порядком следования микроопераций используются логические условия;

    3) процесс выполнения операций в устройстве описывается в форме алгоритма, представляемого в виде микроопераций и логических условий, называемого микропрограммой;

    4) микропрограмма отражает функции устройства, его структуру, и порядок работы устройства во времени.

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

      Как правильно управлять финансами своего бизнеса, если вы не специалист в области финансового анализа - Финансовый анализ

      Финансовый менеджмент - финансовые отношения между суъектами, управление финасами на разных уровнях, управление портфелем ценных бумаг, приемы управления движением финансовых ресурсов - вот далеко не полный перечень предмета "Финансовый менеджмент "

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

    2.3. Структура и форматы команд ЭВМ

    Арифметические операции.

    г) команды передачи кодов;

    Akk:=Аkk*ОП[А1].

    Все возможные преобразования, дискретной информации могут быть сведены к четырем основным видам:

    Передача информации в пространстве (из одного блока ЭВМ в дру­гой);

    Передача информации во времени (хранение);

    Логические (поразрядные) операции;

    Арифметические операции.

    ЭВМ, являющаяся универсальным преобразователем дискретной ин­формации, выполняет указанные виды преобразований.

    Обработка информации (решение задач) в ЭВМ осуществляется автома­тически путем программного управления. Программа представляет собой ал­горитм обработки информации (решение задачи), записанный в виде после­довательности команд, которые должны быть выполнены машиной для полу­чения результата.

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

    По характеру выполняемых операций различают следующие основные группы команд:

    а) команды арифметических операций над числами с фиксированной и плавающей точками;

    б) команды десятичной арифметики;

    в) команды логических операций;

    г) команды передачи кодов;

    д) команды операций ввода-вывода;

    е) команды передачи управления;

    ж) команды задания режима работы машины и др.

    В команде, как правило, содержатся не сами операнды, а информация об адресах ячеек памяти или регистрах, в которых они находятся.

    Команда в общем случае состоит из операционной и адресной частей (рис.2.2,а).

    В свою очередь, эти части, что особенно характерно для адресной части, могут состоять из нескольких полей.

    Рис. 2.2. Структуры команд: а) обобщенная; б) четырех-; в) трех-;

    г) двух -; д) одно -; е) безадресная

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

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

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

    Важной и сложной проблемой при проектировании ЭВМ является выбор структуры и форматов команды, т.е. ее длины, назначения и размерности от­дельных ее полей. Естественно стремление разместить в команде в возможно более полной форме информацию о предписываемой командой операции. Однако в условиях, когда в современных ЭВМ значительно возросло число выполняемых различных операций и соответственно команд (в компьютерах с CISC-архитектурой более 200 команд) и значительно увеличилась емкость адресуемой основной памяти (32, 64 Мб), это приводит к недопустимо боль­шой длине формата команды.

    Действительно, число двоичных разрядов, отводимых под код операции, должно быть таким, чтобы можно было представить все выполняемые ма­шинные операции. Если ЭВМ выполняет М различных операций, то число разрядов в коде операции

    Если основная память содержит S адресуемых ячеек (байт), то для явно­го представления только одного адреса необходимо в команде иметь адрес­ное поле для одного операнда с числом разрядов

    Вместе с тем для упрощения аппаратуры и повышения быстродействия ЭВМ длина формата команды должна быть согласована с выбираемой, исхо­дя из требований к точности вычислений, длиной обрабатываемых машиной слов (операндов), составляющей для большинства применений 32 бита с тем, чтобы для операндов и команд можно было эффективно использовать одни и те же память и аппаратные средства обработки информации. Формат коман­ды должен быть по возможности короче, укладываться в машинное слово или полуслово, а для ЭВМ с коротким словом (8-16 бит) должен быть мало­кратным машинному слову. Решение проблемы выбора формата команды значительно усложняется в микропроцессорах, работающих с коротким сло­вом.

    Отмечавшиеся ранее характерные для процесса развития ЭВМ расшире­ние системы (наборы) команд и увеличение емкости основной памяти, а осо­бенно создание микроЭВМ с коротким словом, потребовали разработки ме­тодов сокращения длины команды. При решении этой проблемы существен­но видоизменилась структура команды, получили развитие различные спосо­бы адресации информации.

    Проследим изменения классических структур команд.

    Чтобы команда содержала в явном виде всю необходимую информацию о задаваемой операции, она должна, как это показано на рис. 2.2,6, содержать следующую информацию:

    А1 , А2; - адреса операндов, А3 - адрес результата, А4 _ адрес следующей команды (принудительная адресация команд).

    Такая структура приводит к большей длине команды (например, при S = 200, S = 32 Мб длина команды - 108 бит) и неприемлема для прямой ад­ресации операндов основной памяти. В компьютерах с RISC-архитектурой четырехадресные команды используются для адресации операндов, храня­щихся в регистровой памяти процессора.

    Можно установить, как это принято для большинства машин, что после выполнения данной команды, расположенной по адресу К (и занимающей L ячеек), выполняется команда из (К+L)-й ячейки. Такой порядок выборки ко­манды называется естественным. Он нарушается только специальными ко­мандами (передачи управления). В таком случае отпадает необходимость указывать в команде в явном виде адрес следующей команды.

    В трехадресной команде (рис. 2.2,в) первый и второй адреса указывают ячейки памяти, в которых расположены операнды, а третий определяет ячей­ку, в которую помещается результат операции.

    Можно условиться, что результат операции всегда помещается на место одного из операндов, например первого. Получим двухадресную команду (рис. 2.2,г), т.е. для результата используется подразумеваемый адрес.

    В одноадресной команде (рис. 2.2д) подразумеваемые адреса имеют уже и результат операции и один из операндов. Один из операндов указывается адресом в команде, в качестве второго используется содержимое регистра процессора, называемого в этом случае регистром результата или аккумуля­тором (Akk). Результат операции записывается в тот же регистр:

    Akk:=Аkk*ОП[А1].

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

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

    Способ расширения кодов операции

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

    Обычно в ЭВМ используется несколько структур и форматов команд разной длины.

    Приведенные на рис. 2.2. структуры команд достаточно схематичны. В действительности адресные поля команд большей частью содержат не сами адреса, а только информацию, позволяющую определить действительные (исполнительные) адреса операндов в соответствии с используемыми в ко­мандах способами адресации.

    Все права защищены. Материалы этого сайта могут быть использованы только со ссылкой на данный сайт

    Входное воздействие в виде двоичного кода, предназначенное для управления микропроцессором, называется командой (или инструкцией). Ее главная функция – выполнение операций над данными. Команда предписывает шаги по реализации микропроцессором заданной операции, представляющей собой функционально завершенное действие, которое определяется типом используемых данных, источником их получения, операцией над ними, приемником размещения результата, источником получения следующей команды . Машинное представление команды в памяти, состоящее из ряда нулей и единиц, называется объектным кодом команды. Для лучшего восприятия команды используется ее символическое обозначение или мнемокод.

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

    • функциональное назначение операции в виде кода операции;
    • адреса источников данных. В общем случае должны быть указаны адреса двух операндов;
    • адрес места расположения результата;
    • адрес следующей команды.

    Способы уменьшения формата команды. Рас смотрим гипотетическую ситуацию. Допустим, что в формате команды:

    • поле кода операций (КО) занимает 4 разряда, что позволяет закодировать 24 = 16 операций;
    • под адреса двух операндов-источников, адрес места расположения результата, адрес следующей команды выделены поля AO1, А02, АР, АСК (рис. 5.20) по 12 разрядов, что позволяет в каждом случае адресовать 212 = 4К ячеек памяти.

    Рис. 5.20.

    Как видно из рис. 5.20, несмотря на скромные возможности команды, ее общая длина составляет достаточно большое число (52) бит. Для сокращения количества разрядов команды часть информации должна быть задана неявно и не должна зависеть от особенностей конкретной команды.

    Наиболее употребительными являются следующие способы сокращения длины кода команды:

    • использование специально предусмотренных для адресации регистров : программного счетчика, указателя стека и др. Например, при выполнении команд с последовательно возрастающими адресами программный счетчик автоматически считывает из памяти следующую команду. В этом случае в формате команды отсутствует поле адреса следующей команды;
    • использование неявных способов адресации. Например, при использовании неявной регистровой адресации адрес следующей команды или операнда хранится в регистре, код которого содержит значительно меньшее число разрядов, чем код исполнительного адреса;
    • совмещение источника одного из операндов с приемником результата. В этом случае в формате команды исключается поле адреса результата;
    • использование команд с укороченной адресацией , т.е. части адресного пространства памяти;
    • использование для некоторой группы операции одного регистра. Наиболее часто для этой цели используется аккумулятор. В операциях с аккумулятором не требуется его кодировка. Например, команда ADD В выполняет операцию сложения содержимого регистра В с аккумулятором А и в него же помещает результат. Такая команда является одноадресной. Ее формат состоит из двух полей: кода операции и адреса операнда. Однако одноадресные команды требуют дополнительных команд для предварительной загрузки операндов в аккумулятор и последующего размещения результатов в памяти;
    • использование нескольких аккумуляторов (Motorola 6800, National РАСЕ, Signetic 2650). В этом случае каждая команда имеет два адреса, однако адрес источника и места назначения может быть задан другим аккумулятором.

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

    • засылку команд (первого байта) в регистр команд с дальнейшей их дешифрацией для активизации устройства управления;
    • поступление данных (последующих байт) в аккумулятор или другие регистры для обработки в АЛ У.

    Форматы команд 8-разрядного процессора. Длина команды составляет от 1 до 3 байт. Код операции всегда размещается в первом байте команды. Второй и третий байты отводятся под непосредственные данные, адрес порта или ячейки памяти. В командах допускается явное задание только одного адреса памяти. Поэтому система команд процессора относится к классу одноадресных команд.

    Форматы команд процессора 8086 изображены на рис. 5.21, где обозначено: ОРС (Operation Code) – код операции; X – биты кода

    Рис. 5.21.

    операции; dst, src – указатели приемника и источника данных; port – адрес порта; data – данные; addr – адрес памяти; LB, НВ – младший и старший байты.