(из одного блока ЭВМ в другой);


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

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

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

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

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

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

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

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

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

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

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

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

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

    ж) команды векторной обработки;

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

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

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

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

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

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

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

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

    n коп ³ log 2 М; например, при М= 500 n коп = 9.

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

    n А ³ log 2 S; например, при S = 4 Гбайт n А = 32.

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

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

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

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

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

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

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

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

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

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

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

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


    Рис. 2.14. Структуры команд:


    а – обобщенная; б – четырехадресная; в – трехадресная;
    г – двухадресная; д – одноадресная; е – безадресная

    Лекция 11 ОСНОВНЫЕ КОМАНДЫ ЭВМ Классификация команд по различным признакам Структура команд ЭВМ Команды передачи данных Команды обработки данных Команды передачи управления Команды для работы с подпрограммами. Стеки. Прочие команды ЭВМ.

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

    Классификация команд ЭВМ По функциональному назначению Команды передачи данных Команды обработки данных Команды передачи управления Дополнительные (прочие) По количеству адресов Нульадресные или безадресные С одним адресом С двумя адресами С тремя адресами По способу кодирования операции По длине С фиксированной длиной кода операции С переменной длиной кода операции По способу адресации Один байт (слово) Два байта (слова) Три байта (слова)

    Код операции а 1 а 2 а 3 - Трехадресная команда а 1, а 2 – адреса ячеек (регистров), где находятся числа, участвующие в операции (операнды) а 3 – адрес ячейки оперативной памяти, куда нужно поместить результат Код операции а 1 а 2 - Двухадресная команда Результат записывается в ячейку а 2 Код операции а 1 - Одноадресная команда а 1 – адрес ячейки, где хранится число участвующее в операции или адрес ячейки, где записывается результат Код операции - Нуль адресная команда Все операнды в регистре ЦП

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

    Команды обработки данных Данную группу команд с точки зрения выполняемых над данными операций можно подразделить на арифметические (сложить, вычесть, умножить, сравнить), логические (операции И, ИЛИ, НЕ и т. д.) и команды сдвига. Команды этого типа могут иметь один или два операнда. Операнды могут храниться к регистрах центрального процессора, в памяти или в самой команде.

    Результат операции формируется в регистре-приемнике или в специализированном регистреаккумуляторе. Команды данной группы формируют также признаки результатов, устанавливаемые в регистре флагов процессора: перенос из старшего разряда, переполнение, нулевой результат и др.

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

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

    Src="https://present5.com/presentation/3/-29919247_13569617.pdf-img/-29919247_13569617.pdf-11.jpg" alt="Пример команды условного перехода Оператор IF (A>B) then go to L некоторого языка"> Пример команды условного перехода Оператор IF (A>B) then go to L некоторого языка высокого уровня может быть реализован двумя командами ЭВМ: СРАВНИТЬ А и В ПЕРЕЙТИ ЕСЛИ БОЛЬШЕ К АДРЕСУ L Если А>В, то результат вычитания будет положителен и соответственно флаг знака во флаговом регистре не установится. Вторая команда (условный переход) проверяет состояние флага знака и, если он не установлен, модифицирует программный счетчик так, чтобы его значение указывало на адрес L.

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

    Где надо хранить адрес возврата? Для того, чтобы начать выполнять подпрограмму, в программный счетчик необходимо загрузить адрес первой команды подпрограммы. Для осуществления возврата из подпрограммы необходимо запомнить в каком-то месте адрес возврата. Можно, например, сохранить адрес возврата в одном из регистров процессора. Такой способ сохранения адреса возврата очень прост и легко реализуется. Однако часто встречаются подпрограммы, которые вызывают другие подпрограммы. Пусть основная программа вызвала подпрограмму А. Она в свою очередь обратилась к подпрограмме В. Если адрес возврата для подпрограммы А хранится в регистре процессора, то куда размещать адрес возврата при вызове подпрограммы В?

    Обобщенный алгоритм функционирования фон – неймановской ЭВМ Инициализация Выборка команды Увеличение программного счетчика Дешифрация и выполнение команды Нет Команда «Остановка процессора» Да Инициализация

    Понятие стека Большинство ЭВМ используют аппаратно поддерживаемую структуру данных, называемую стеком. Стек - это структура данных, организованная по принципу: последним вошел - первым вышел, т. е. последние записанные в стек данные извлекаются из него первыми. В переводе с англ. stack - стопка. Аналогом стека может служить стопка тарелок. Положить тарелку в стопку можно только сверху, извлечь без проблем опятьтаки только верхнюю тарелку.

    Организация стека 1. В ЭВМ для организации стека выделяется область оперативной памяти, а для ее адресации и доступа к стеку используется регистр- указатель стека. 2. Регистр -указатель стека хранит адрес ячейки памяти, содержащей последнее помещенное в стек значение. 3. При записи числа в стек указатель стека модифицируется так, чтобы он указывал на следующую свободную ячейку, и в нее записываются данные.

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

    Команды для работы с подпрограммами. Стеки Стек = ячейки ОП + регистр - указатель стека (АЛУ ЦП) Регистр - указатель стека хранит адрес ячейки ОП, в которой содержится последний помещенный в стек адрес возврата Структура данных стека на примере А) Начальное состояние: стек пустой Ячейки ОП Адреса ячеек 1000 Указатель стека 998 996 Б) В стек записаны два адреса возврата: 1234 и 5678 1234 1000 Указатель стека 5678 998 Запись адресов возврата 996 В) Из стека извлечен один адрес, последний Указатель стека 1234 1000 998 996 Считывание 1000

    Src="https://сайт/presentation/3/-29919247_13569617.pdf-img/-29919247_13569617.pdf-19.jpg" alt="Работа команды вызова подпрограмм САLL 1. Когда процессор считывает из памяти команду САLL"> Работа команды вызова подпрограмм САLL 1. Когда процессор считывает из памяти команду САLL , программный счетчик увеличивается и показывает на команду, следующую за командой САLL. То есть программный счетчик теперь содержит адрес возврата, с которого должно продолжиться выполнение основной программы после окончания работы подпрограммы. 2. При выполнении обращения к подпрограмме процессор сохраняет содержимое программного счетчика в стеке, точнее, в его ячейках ОП. 3. Далее в программный счетчик загружается адрес команды, с которого начинается подпрограмма. Процессор приступает к выполнению подпрограммы.

    Работа команды возврата RETURN 1. Для возврата из подпрограммы в основную программу служат команды возврата RETURN. 2. Команда возврата из подпрограммы извлекает из стека сохраненный в нем адрес возврата помещают его в программный счетчик. 3. Процессор приступает к выполнению основной программы. 4. Если имели место несколько вложенных вызовов подпрограмм, то возврат произойдет по адресу возврата, сохраненному последнего вызова, (так как для хранения адресов возврата используется стек и последний сохраненный адрес возврата будет вызван первым).

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

    ^

    2.8 Типы и форматы команд


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

      • команды пересылки данных;

      • команды арифметической и логической обработки;

      • команды работы со строками;

      • команды SIMD;

      • команды преобразования;

      • команды ввода/вывода;

      • команды управления потоком команд.
    ^

    2.8.1 Команды пересылки данных


    Это наиболее распространенный тип машинных команд. В таких командах должна содержаться следующая информация:

    • адреса источника и получателя операндов – адреса ячеек памяти, номера регистров процессора или информация о том, что операнды расположены в стеке;

    • длина подлежащих пересылке данных (обычно в байтах или словах), заданная явно или косвенно;

    • способ адресации каждого из операндов, с помощью которого содержимое адресной части команды может быть пересчитано в физический адрес операнда.
    Рассматриваемая группа команд обеспечивает передачу информации между процессором и ОП, внутри процессора и между ячейками памяти. Пересылочные операции внутри процессора имеют тип «регистр-регистр». Передачи между процессором и памятью относятся к типу «регистр-память», а пересылки в памяти - к типу «память-память».
    ^

    2.8.2 Команды арифметической и логической обработки


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

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


    • Z (Zero) - нулевой результат;

    • N (Negative) - отрицательный результат;

    • V (oVerflow) - переполнение разрядной сетки;

    • С (Carry) - наличие переноса.
    К стандартному набору операций над целыми числами, представленными в форме с фиксированной запятой, следует отнести:

    • двухместные арифметические операции (операции с двумя операндами): сложение, вычитание, умножение и деление;

    • одноместные арифметические операции (операции с одним операндом): вычисление абсолютного значения (модуля) операнда, изменение знака операнда;

    • операции сравнения, обеспечивающие сравнение двух целых чисел и выработку признаков, характеризующих соотношение между сопоставляемыми величинами (=, <>, >, <, <=, >=).
    Часто этот перечень дополняют такими операциями, как вычисление остатка от целочисленного деления, сложение с учетом переноса, вычитание с учетом заема, увеличение значения операнда на единицу (инкремент ), уменьшение значения операнда на единицу (декремент ).

    Отметим, что выполнение арифметических команд может дополнительно сопровождаться перемещением данных из устройства ввода в АЛУ или из АЛУ на устройство вывода.

    Для работы с числами, представленными в форме с плавающей запятой, в АСК большинства машин предусмотрены:


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

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

    • операции преобразования: формы представления (между фиксированной и плавающей запятой), формата представления (с одинарной и двойной точностью).
    Стандартная система команд ЭВМ содержит команды для выполнения различных логических операций над отдельными битами слов или других адресуемых единиц. Такие команды предназначены для обработки символьных и логических данных. Минимальный набор поддерживаемых логических операций - это «НЕ», «И», «ИЛИ» и сложение по модулю 2.

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

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

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

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

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

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

    2.8.3 SIMD-команды

    Название данного типа команд представляет собой аббревиатуру от Single Instruction Multiple Data - буквально «одна инструкция - много данных». В отличие от обычных команд, оперирующих двумя числами, SIMD-команды обрабатывают сразу две группы чисел (в принципе их можно называть групповыми командами). Операнды таких команд обычно представлены в одном из упакованных форматов.

    Идея SIMD-обработки была выдвинута в Институте точной механики и вычислительной техники им. С.А. Лебедева в 1978 году в рамках проекта «Эльбрус-1». С 1992 года команды типа SIMD становятся неотъемлемым элементом АСК микропроцессоров фирм Intel и AMD, Поводом послужило широкое распространение мультимедийных приложений. Видео, трехмерная графика и звук в ЭВМ представляются большими массивами данных, элементы которых чаше всего обрабатываются идентично. Так, при сжатии видео и преобразовании его в формат MPEG один и тот же алгоритм применяется к тысячам битов данных. В трехмерной графике часто встречаются операции, которые можно выполнить за один такт: интерполирование и нормировка векторов, вычисление скалярного произведения векторов, интерполяция компонентов цвета и т. д. Включение SIMD-команд в АСК позволяет существенно ускорить подобные вычисления.

    Первой на мультимедийный бум отреагировала фирма Intel, добавив в систему команд своего микропроцессора Pentium ММХ 57 SIMD-команд. Название МMX (MultiMedia eXtention – мультимедийное расширение) разработчики обосновывали тем, что при выборе состава новых команд были проанализированы алгоритмы, применяемые в различных мультимедийных приложениях. Команды ММХ обеспечивали параллельную обработку упакованных целых чисел. При выполнении арифметических операций каждое из чисел, входящих в группу, рассматривается как самостоятельное, без связи с соседними числами. Учитывая специфику обрабатываемой информации, команды ММХ реализуют так называемую арифметику с насыщением: если в результате сложения образуется число, выходящее за пределы отведенных под него позиций, оно заменяется наибольшим двоичным числом, которое в эти позиции вмещается.

    Следующим шагом стало создание новых наборов SIMD-команд, работающих также с операндами, представленными в виде упакованных чисел с плавающей запятой. Такие команды в соответствующих приложениях повышают производительность процессора примерно вдвое. Первой подобную технологию в середине 1998 года предложила фирма AMD. Это мультимедийное расширение включало в себя 21 SIMD-команду и получило название 3DNow!. Расширение 3DNow! в дополнение к SIMD-обработке целочисленной информации типа ММХ позволяло оперировать парой упакованных чисел в формате с плавающей запятой.

    Полугодом позже фирма Intel ввела в свои микропроцессоры так называемые потоковые SIMD-команды, обозначив их аббревиатурой SSE - Streaming SIMD Extension (потоковая обработка по принципу «одна команда - много данных»). Сначала это были 70 команд в микропроцессоре Pentium III. Команды дополняли групповые целочисленные операции МMX и расширяли их за счет групповых операций с 32-разрядными вещественными числами.
    ^

    2.8.4 Команды ввода/вывода


    Команды этой группы могут быть подразделены на команды управления периферийным устройством (ПУ), проверки его состояния, ввода и вывода.

    Команды управления периферийным устройством служат для запуска ПУ и указания ему требуемого действия. Трактовка подобных инструкций зависит от типа ПУ.

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

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

    2.8.5 Команды управления системой


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

    2.8.6 Команды управления потоком команд


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

    В системе команд ЭВМ можно выделить три типа команд, способных изменить последовательность вычислений:


    • безусловные переходы;

    • условные переходы (ветвления);

    • вызовы процедур и возвраты из процедур.
    Несмотря на то что присутствие в программе большого числа команд безусловного перехода считается признаком плохого стиля программирования, такие команды обязательно входят в АСК любой ЭВМ. Для их обозначения в языке ассемблера обычно используется английское слово jump (прыжок). Команда безусловного перехода обеспечивает переход по заданному адресу без проверки каких-либо условий.

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

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

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

    2.8.7 Форматы команд


    Типовая команда, в общем случае, должка указывать:


    • подлежащую выполнению операцию;

    • адреса исходных данных (операндов), над которыми выполняется операция;

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

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


    • общее число различных команд;

    • общую длину команды;

    • тип полей команды (фиксированной или переменной длины) и их длина;

    • простоту декодирования;

    • адресуемость и способы адресации;

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

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

    Общая длина команды R K может быть определена следующим соотношением:

    ,

    где l – количество адресов в команде; R Ai – количество разрядов для записи i -го адреса; R КОп – разрядность поля кода операции; R СА – разрядность поля способа адресации.

    Количество двоичных разрядов, отводимых под код операции , выбирается так, чтобы можно было представить любую из операций. Если система команд предполагает N КОп различных операций, то минимальная разрядность поля кода операции определяется следующим образом:
    R КОп = int(log 2 (N КОп )),
    где int означает округление в большую сторону до целого числа.

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

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

    Разрядности полей и рассчитываются по формулам:
    R Ai = int(log 2 (N i )), R CA = int(log 2 (N CA )),
    где N i , – количество ячеек памяти, к которому можно обратиться с помощью i -ro адреса; N СА – количество способов адресации.

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

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

    К сожалению, и в трехадресном формате длина команды может оказаться весьма большой. Так, если адрес ячейки основной памяти имеет длину 32 бита, а длина кода операции – 8 бит, то длина команды составит 104 бита (13 байт).

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

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

    Применение единственного регистра для хранения одного из операндов и результата является ограничивающим фактором, поэтому помимо аккумулятора часто используют и другие регистры ЦП. Так как число регистров к ЦП невелико, для указания одного из них в команде достаточно иметь сравнительно короткое адресное поле. Соответствующий формат носит название полутораадресного или регистрового формата.

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

    При выборе количества адресов в адресной части команды обычно руководствуются следующими критериями:


    • емкостью запоминающего устройства, требуемой для хранения программы;

    • временем выполнения программы;

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

    • выборки команды;

    • выборки первого операнда;

    • выборки второго операнда;
    Одноадресная команда требует двух обращений к памяти:

    • выборки команды;

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

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

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

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

    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. структуры команд достаточно схематичны. В действительности адресные поля команд большей частью содержат не сами адреса, а только информацию, позволяющую определить действительные (исполнительные) адреса операндов в соответствии с используемыми в ко­мандах способами адресации.

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

    Влияние основных характеристик

    компьютера на формат команды

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

    Введение

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

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

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

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

    Рис.1. Обобщенный формат команды

    Важной характеристикой команды служит ее длина. В общем случае n ком – количество двоичных разрядов команды, является функцией:

      количества команд, составляющих систему команд ЭВМ,

      системы кодирования команд,

      объёма используемых в ЭВМ запоминающих устройств,

      режимов адресации операндов

    Она складывается из длины поля кода операции и суммы длин адресных полей:

    n ком = n ко п + n адр ,

    где n – количество адресных полей в команде.

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

    Максимальное количество операций (К max), которое может быть закодировано в поле кода операций длиной n КОп, составляет

    Тогда по известному количеству команд, составляющих систему команд данной ЭВМ, мож­но определить необходимую длину поля операции:

    n ко п ³ log 2 K.

    Естественно, что эта величина должна быть минимально возможным целым числом. Так, для ЭВМ, имеющей систему команд из 100 команд, длина поля кода операции составит 7 бит.

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

    Оперативная память (ОП) – это совокупность последовательных ячеек, каждая из которых предназначена для хранения двоичного кода фиксированной разрядности. Все ячейки памяти имеют условные l -разрядные двоичные номера (00...000, 00...001, 00...010 и т.д.). Двоичный код номера ячейки ОП и является её адресом.

    Если поле адреса команды содержит просто номер ячейки ЗУ, к которой производится обраще­ние, то длина этого поля определяется следующим образом:

    n адр ³ log 2 V ЗУ,

    где V ЗУ – объем запоминающего устройства. При этом также необходимо учитывать, что эта величина должна быть целой и минимально возможной при данном условии. Так для указания адреса (номера) любой ячейки ЗУ, состоящей из 300 ячеек, потребуется 9 двоичных разрядов.

    Правомерна и другая постановка задачи – определение максимального объема запоминающего устройства (V ЗУ max), к которому можно обратиться при заданной длине поля адреса. В этом случае

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

    Одним из способов уменьшения длины поля адреса является введение в состав ЭВМ дополнительно специального блока памяти небольшого объема – регистровой памяти (РП). Это запоминающее устройство имеет высокое быстродействие и служит для хранения часто используемой информации: промежуточных результатов вычислений, счетчиков циклов, составляющих адреса при некоторых режимах адресации и т.д. Так как объем РП невелик, адресация ее элементов требует относительно короткого адресного поля. Например, для регистровой памяти объемом 8 регистров требуется всего лишь трехразрядное адресное поле.

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

    На формат команды существенное влияние оказывает система кодирования команд – количество адресов i в адресной части команды. В настоящее время наибольшее распространение в ЭВМ общего назначения имеет двухадресная система команд.

    Тогда схема выполнения операции в двухадресной системе команд будет иметь вид:

    (А 1)*(А 2)  А 1 , или

    (А 1)*(А 2)  А 2 ,

    то есть над двумя операндами, расположенными по адресам А 1 и А 2 , выполняется некоторая операция, результат которой записывается на место первого или второго операнда (в зависимости от архитектуры ЭВМ), замещая его.

    Формат двухадресной команды представлен на рис.

    Рис. Структура двухадресной команды

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

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

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

    Порядок выполнения работы

    В работе необходимо выполнить два задания:

      решить задачу синтеза формата двухадресной команды, исходя из заданных характеристик ЭВМ и

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

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

    Рис. Окно изучения теории лабораторной работы

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

    Вид экрана при выполнении первого задания представлен на рис.

    Рис. Исходное окно задания по синтезу формата команды

    Исходными данными для определения формата команды являются:

      количество команд, выполняемых ЭВМ (для приведённого на экране задания К=149),

      объём оперативной памяти (Vоп = 2048K ячеек),

      объём регистровой памяти (Vрп = 41),

      длина операнда при непосредственной адресации (L=8).

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

    регистр-регистр,

    регистр-память,

    память-память,

    регистр - непосредственный операнд,

    память - непосредственный операнд.

    Для всех форматов команды:

    n коп  log 2 149.

    Ближайшее целое число, удовлетворяющее этому условию, – n коп = 8 бит.

    Разрядность поля адреса для прямой адресации операнда в оперативной памяти:

    n адр оп  log 2 (2048*2 10)

    n адр оп =21 бит.

    Разрядность поля адреса для адресации операнда в регистровой памяти:

    n адр рп  log 2 41

    n адр рп = 6 бит.

    Разрядность поля для размещения непосредственного операнда равна длине этого операнда и составляет

    n неп = 8 бит.

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

    Формат команды

    Поле кода операции

    Поле адреса операнда

    1-й операнд

    2-й операнд

    регистр – регистр

    регистр – память

    память – память

    регистр – непосредственный операнд

    память – непосредственный операнд

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

    Рис. Окно тренировочного режима задания по по синтезу формата команды

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

    По клавише «Следующий» можно получить новые исходные данные для этого задания, перейти к выполнению задания 2 на соответствующую вкладку или вернуться на главную форму урока, чтобы перейти к выполнению работы в режиме контрольного тестирования (кнопка «Вернуться»).

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

    Вид экрана при выполнении второго задания представлен на рис. .

    На экране представлены значения длин полей двухадресной команды формата «регистр-память». Исходными данными для определения предельных характеристик ЭВМ являются длины полей команды, отводимых под кодирование кода операции и адресов операндов при прямой адресации регистровой и оперативной памяти.

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

    В приведенном на экране задании длина поля, отводимого под код операции, составляет n коп = 5. Длина поля адреса регистровой памяти: n адр рп = 4. Длина поля адреса оперативной памяти: n адр оп = 19 (рис).

    Согласно этим данным, максимальное количество команд, которое может входить в систему команд данной ЭВМ, составит

    K max = 2 5 = 32 команды.

    Максимальное количество адресуемых регистров, которое может содержать ЭВМ, будет равно:

    V рп = 2 4 = 16.

    Максимальный объем адресуемой оперативной памяти составит

    V оп = 2 19 = 2 9 * 2 10 = 512 К ячеек.

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

    Рис. Окно выполнения задания по анализу формата команды

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

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

    Рис. Окно оценки результатов выполнения программы в контрольном режиме

    Особенности работы программы

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

    Клавиша «Результат» показывает в тренировочном режиме правильные значения сразу для всех полей всех команд. Поэтому её целесообразно нажимать только после полного заполнения всей формы синтеза формата команды.

    В задании 2 при указании максимального объёма ОЗУ необходимо указывать величину, составляющую 2 10 ячеек, т.е. из полученного расчётного значения для этого поля при вводе необходимо вычесть 10.

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

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

    Вопросы и задания к работе

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

      Какие характеристики компьютера определяют разрядность полей ко­манды? Укажите эти зависимости.

      Какую информацию должна содержать команда?

      Что такое "Формат команды"?

      От каких характеристик ЭВМ зависит длина команды?

      Какие преимущества и недостатки имеют команды с различным количеством адресных полей?

      Каково назначение отдельных полей команды?

      От каких характеристик ЭВМ зависит длина поля команды?

      От каких характеристик ЭВМ зависит длина поля адреса?

      Чем определяется длина поля непосредственного операнда?

      Как изменится длина адресного поля команды, содержащее прямой адрес ячейки оперативной памяти, если объём ОЗУ увеличится в 2 раза? Показать математически.

      Как изменится длина поля кода операции, если количество команд в системе команд уменьшится в 2 раза? Показать математически.

      Как изменится длина двухадресной команды формата «регистр-регистр», если количество регистров в ЭВМ увеличится в 4 раза? Показать математически.

      Сколько команд может содержать система команд ЭВМ, если длина поля кода операции составляет 8 бит? Указать диапазон, а не только максимальное количество.

      Какова должна быть разрядность поля адреса при непосредственной адресации, если максимальное значение операнда равно 1000 (числа без знака)?

      Какова должна быть разрядность поля адреса при непосредственной адресации, если |X|<1000 (числа со знаком)?


    Close