Группа 2: Префиксы замены сегмента, Префиксы анализа переходов Группа 3: Префикс изменения разрядности операнда Группа 4: Префикс изменения разрядности адреса Группа 1: Группа 2: Префиксы блокировки и повторения: Префиксы замены сегмента: – F0h – LOCK – 2Eh – CS – F2h – REPNE/REPNZ – 36h – SS – F3h – REP или REPE/REPZ – 3Eh – DS – 26h – ES – 64h – FS – 65h – GS Префиксы анализа переходов (Branch hints): – 2Eh – Branch not taken – 3Eh – Branch taken Группа 3: Группа 4: Префикс изменения разрядности Префикс изменения разрядности операнда: адреса: – 66h – 67h
22. Поясните формат двухоперандной команды.
Instruction Prefixes – префиксы команд (необязательные байты для кодирования
особенностей выполнения команды (повторение команды . и т.д.)); OpCode – код операции (256 операций можно определить); ModR/M – постбайт, служит расширением OpCode, определяет местоположение операндов: - Поля mod и r/m задают место расположения первого операнда - Поле reg задает положение второго операнда SIB – байт масштабируемого индекса базы, увеличивает количество способов адресации, служит для представления сложных структур памяти: - Scale – масштабный коэффициент, для ссылки на элемент массива длиной 1,2,4 или 8 байт - Index задает номер одного из РОН, используемого в качестве индексного регистра - Base в комбинации с полем mod постбайта указывает регистр базы и смещение для индексированных операндов Displacement – смещение эффективного адреса; Immediate – непосредственный операнд;
23. Поясните назначение полей постбайта и байта SIB.
ModR/M – постбайт, служит расширением OpCode, определяет местоположение операндов; SIB – байт масштабируемого индекса базы, увеличивает количество способов адресации, служит для представления сложных структур памяти: - Scale – масштабный коэффициент, для ссылки на элемент массива длиной 1,2,4 или 8 байт - Index задает номер одного из РОН, используемого в качестве индексного регистра - Base в комбинации с полем mod постбайта указывает регистр базы и смещение для индексированных операндов
24. Объясните возможные значения поля Mod постбайта.
11 — операнд в регистре (при остальных mod операнд в ОЗУ, а регистры, на которые указывают поля mod и r/m, содержат компоненты адреса операнда); 10 — смещение два байта (без знака); 01 — смещение один байт (со знаком); 00 — смещение в команде отсутствует.
25. Каким образом в процессоре задается разрядность операндов и адресов памяти?
Разрядность операнда и адреса памяти (8, 16 или 32 разряда) зависит от режима работы процессора и может изменяться соответствующим префиксом. Группа 3: Префикс изменения разрядности операнда: 66h Группа 4: Префикс изменения разрядности адреса: 67h
26. Как процессор обрабатывает префиксы REX?
Определяют: - регистры GPR и SSE; - 64-битный размер операнда; - регистры расширенного управления. Набор 64-битных приставок REX, которые не столько расширяют возможности инструкций, сколько служат для кодирования дополнительной информации в четырех своих полях.
27. Какие регистры могут использоваться в качестве базовых в 16- и 32-разрядном
режимах? Процессор может использовать режимы 32-битной или 16-битной адресации. Режим 16-битной адресации соответствует режимам процессоров 8086 и 80286, при этом в качестве компонентов адреса используются младшие 16 бит соответствующих регистров. Режим 32-битной адресации использует расширенные 32-разрядные регистры и имеет дополнительные режимы, использующие масштабирование индекса. 28. Чем является арифметический сопроцессор по отношению к CPU? Представляет собой аппаратное расширение ЦП.