logo search
Методичка

2.3.7 Команды с операндами, расположенными в памяти

Как мы уже знаем, в машинном коде для идентификации регистровых операндов команды используется байт Mod R/M, с помощью которого можно закодировать 28 = 256 различных операндов команды. При этом сама команда кодируется относительно просто и занимает всего 2 байта. Однако в системе команд процессоров Intel предусмотрено довольно много режимов адресации операндов, находящихся в памяти. В результате кодирование команды и ее операндов с помощью байта Mod R/M существенно усложняется, что вызывает увеличение длины команды. Этот факт неоднократно вызывал резкую критику системы команд процессоров Intel сторонниками архитектуры процессоров с усеченным набором команд (RISC).

Вопросы для самопроверки

  1. Какие регистры общего назначения используются в архитектуре IA-32?

  2. Каково предназначение указателя команд?

  3. Для чего служат управляющие флаги регистра флагов?

  4. Перечислите флаги состояния регистра флагов?

  5. Какие управляющие регистры предусмотрены в архитектуре IA-32?

  6. Какие дополнительные функциональные модули предусмотрены в кристалле микропроцессора IA-32?

  7. Для чего предназначено расширение MMX?

  8. Для чего предназначено расширение 3DNow! И SSE?

  9. Для чего предназначено расширение AVX?

  10. Для чего предназначено расширение AEX?

  11. Каковы типы адресации используются в 32-разрядных процессорах Intel и AMD?

  12. Для чего используется базовая и индексная адресация?

  13. Каким образом организуется базово-индексная адресация?

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

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

  16. Какие существуют группы команд в системе команд микропроцессоров IA-32?

  17. Какие поля входят в формат команды микропроцессоров IA-32?

  18. Какую информацию хранит поле r/m команд микропроцессоров IA-32?