Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Bilety_po_AiP.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.1 Mб
Скачать
  1. Система команд Intel, классификация команд, форматы команд.

Система команд определяется:

  • набором команд для разных типов данных

  • способами адресации операндов в команде, которые определяют формат команды.

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

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

Основа набора команд всех процессоров семейства – базовая система команд 18086, которая не изменилась при смене поколений процессоров. В 180186 добавлены новые команды для обеспечения удобных средств программирования, снижения семантического разрыва с языками высокого уровня (команда контроля границ массива BOUND, вход в процедуру ENTER, выход из процедуры LEAVE). В СК 180286 введены команды для аппаратной поддержки функций операционной системы по управлению памяти, средствам защиты и переключению задач. В 180386 и 1486 СК усовершенствована:

  1. расширение использования команд базовой системы реализацией новых режимов адресации и возможностью работать с 32-битными операндами (почти все команды оперируют с 8/16/32-битными регистрами процессора; в большинстве команд обращения к памяти допускается использование новых базовых и индексных регистров, масштабированное индексирование, применение любого из 6 сегментных регистров с помощью специального префикса замены сегмента);

  2. добавлены новые команды операций над двоичными цепочками и битами, команды двойного сдвига;

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

  4. улучшены алгоритмы выполнения существующих команд.

При разработке архитектуры Pentium были использованы новые принципы, что отразилось на СК, которая была расширена.

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

Система команд в Intel включает:

  1. арифметические операции: + , - , * , / , cmp, mul (знаковые), imul (беззнаковые)

  2. операции сдвига

  3. логические операции

  4. цепочечные (массив)

  5. операции над цепочками битов

  6. команды выполнения операций над адресами (ссылками)

  7. команды пересылок (память<->регистр<->регистр, команды обмена со стеком).

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

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

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

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

Набор команд процессоров Intel поддерживает операции над операндами, находящимися в регистрах, в памяти или непосредственно в команде. В набор входят безадресные, одноадресные, двухадресные и трехадресные команды. В процессорах реализованы типы двухоперандных команд:

  1. регистр – регистр

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

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

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

  5. память – память (для цепочечных и стековых команд)

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

операнды могут иметь размеры: 8, 16, 32 и 64 разряда.

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

Команда состоит из:

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

  • повторение команды (Repeat) (обработка цепочек)

  • размер операнда (Operand Size), переключающий процессор на обработку 16 или 32 битных операндов

  • размер адреса (Andres Size) (признак формирования 16 и 32-битных эффективных адресов)

  • замена сегмента (Segment Override) (определяет сегментный регистр операнда, выбираемого из памяти, для конкретной команды вместо сегментного регистра, принимаемого по умолчанию)

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

  1. одного или двух байт кода операции (главного) (какое действие нужно выполнить)

  2. 0, 1 или 2 байт адресации (спецификатор адреса, представленного байтами mod r/m и sib) (sib – база, индекс, масштаб) (mod r/m – первый байт спецификации адреса операнда (режим регистрации памяти): 2 бита – кодировка собственно режима (1 – регистр, 0- память), остальные биты – кодировка регистров)

  3. смещение в команде (displacement) (0, 1, 2 или 4 байта) определяется последним полем спецификации адреса. Для определения размерности смещения используется префикс.

  4. непосредственные данные (1 – 4 байта) (если он присутствует).

Информация о формате операнда (байт, слово, двойное слово) не содержится, она кодируется отдельно:

  • в самом коде операции (дополняет этот код). Занимает max 6 разрядов. Дополнительные разряды позволяют уточнить, что за операнды используются: 1 бит показывает, в каком формате выполняется операнд (1 – слово, 0 - байт), слово или двойное слово определяется режимом работы процессора и специальным префиксом, который записывается перед командой.

  • MS-DOS работает в реальном режиме, т.е. в режиме базовых моделей Intel 80186. По умолчанию размер операнда – слово (двойного слова не было). Если нужны 32-разрядные данные, транслятор перед командой вставит специальный префикс.

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

  • По умолчанию в современных компьютерах в защищенном режиме используются 32-разрядные данные (начиная с 80386 регистры 32-разрядные). Для совместимости в дескрипторных таблицах хранится специальный признак определения 16- или 32-разрядного кода.

  • Для операндов, расположенных в памяти со сложным режимом адресации, используется байт sib. Масштаб (2 бита – степень 2): байт – 00; слово – 01; 2слово – 11. индекс и база – по 3 бита. Sib появился в 32-разрядных процессорах.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]