Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 47

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 41 42 43 44 45 46 < 47 > 48 49 50 51 52 53 .. 528 >> Следующая

при D = 0,32 при D = 1. Если команде предшествуют префиксы OS, AS, то при
ее выполнении принятая по умолчанию разрядность операнда или адреса
изменяется. В результате разрядность операндов и относительных адресов в
защищенном режиме определяется в соответствии с табл. 2.14. Для реального
режима и режима виртуального 8086 выбор разрядности определяется при
значениях D = 0.
Процессор реализует ряд способов адресации операнда, набор которых
обеспечивает эффективную работу с языками высокого уровня (Си, Фортран и
др.).
Непосредственная адресация. В качестве операнда Imm используются один,
два или четыре последних байта команды. Такой способ адресации
реализуется при выполнении ряда команд пересылки (MOV, PUSH),
арифметических операциях (ADD, ADC, SUB, SBB, CMP, IMUL) и логических
операциях (AND, OR, XOR, TEST). Непосредственная адресация задается
определенным значением кода ОРС, содержащегося в первом байте этих
команд, или поля REG/ОРС байта MODR/M. Разрядность используемых
непосредственных данных (8,16 или 32 разряда) зависит от режима работы
процессора и может изменяться соответствующим префиксом.
Регистровая адресация. Операнд выбирается из регистра, определяемого
полем R/M в байте MODR/M. Код, содержащийся в этом поле, задает
выбираемый регистр в соответствии с табл. 2.6. Данный способ реализуется
при задании в байте MODR/M значения поля МПГ) =11.
СТРУКТУРА И ФУНКЦИОНИРОВАНИЯ ПРОЦЕССОРОВ INTEL Р6
Таблица 2.9
Формирование 16-разрядного ЕА
Поле R/M Поле MOD
00 01 10
ООО DS:[BX+SI] DS DO X + СЛ + Q. 00 DS:[BX+SI+d16]
001 DS:[BX+DI] DS [BX+DI+d8] DS:[BX+DI+d16]
010 SS:[BP+SI] SS [BP+SI+d8] SS:[BP+SI+d16]
011 SS:[BP+DI] SS [BP+DI+d8] SS:[BP+DI+d16]
100 DS:[SI] DS [Sl+d8] DS:[SI+d16]
101 DS:[DI] DS [Dl+d8] DS:[DI+d16]
110 DS:[d16] SS [BP+d8] SS:[BP+d16]
111 DS:[BX] DS [BX+d8] DS:[BX+d16]
Таблица 2.10
Формирование 32- разрядного ЕА (байт SIB отсутствует)
Поле R/M Поле MOD
00 01 10
000 DS:[EAX] DS:[EAX+d8] DS:[EAX+d32]
001 DS:[ECX] DS:[ECX+d8] DS:[ECX+d32]
010 DS:[EDX] DS:[EDX+d8] DS:[EDX+d32]
011 DS:[EBX] DS:[EBX+d8] DS:[EBX+d32]
100 (см. табл. 1.10) (см. табл. 1.10) (см. табл. 1.10)
101 DS:[d32] SS:[EBP+d8] SS:[EBP+d32]
110 DS:[ESI] DS:[ESI+d8] DS:[ESI+d32]
111 DS: [EDI] DS:[EDI+d8] DS:[EDI+d32]
Таблица 2.11
Формирование 32- разрядного ЕА (байт SIB присутствует)
Поле Поле MOD
BASE 00 01 10
000 DS:[EAX+(IR*F)] DS:[EAX+(IR*F)+d8] DS:[EAX+(IR*F)+d32]
001 DS:[ECX+(IR*F)] DS:[ECX+(IR*F)+d8] DS:[ECX+(IR*F)+d32]
010 DS:[EDX+(IR*F)] DS:[EDX+(IR*F)+d8] DS:[EDX+(IR*F)+d32]
011 DS:[EBX+(IR*F)] DS:[EBX+(IR*F)+d8] DS:[EBX+(IR*F)+d32]
100 SS:[ESP+(IR*F)] SS:[ESP+(IR*F)+d8] SS:[ESP+(IR*F)+d32]
101 DS:[d32+(IR*F)] SS:[EBP+(IR*F)+d8] SS:[EBP+(IR*F)+d32]
110 DS:[ESI+(IR*F)] DS:[ESI+(IR*F)+d8] DS:[ESI+(IR*F)+d32]
111 DS:[EDI+(IR*F)] DS:[EDI+(IR*F)+d8] DS:[EDI+(IR*F)+d32]
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ
Таблица 2.12
Кодировка значений масштабного коэффициента F
Поле SS Масштабный множитель F
00 1
01 2
10 4
11 8
Косвенно-регистровая адресация. Относительный адрес ЕА содержится в
индексном (SI, Dl, ESI, EDI) или базовом (ВХ, ЕВХ) реп-i страх или
регистрах общего назначения (ЕАХ, ЕСХ, EDX). Данный способ реализуется
при значении поля MOD = 00 (см. табл. 2.9,2.10).
Прямая адресация. Относительный адрес операнда ЕА содержится в команде в
виде смещения d 16 или d32. Этот способ адресации реализуется при
значениях полей R/M = 110 и MOD = 00, R/M= 110 (см. табл. 2.9)nnnR/M =
101 (см. табл. 2.10).
Базовая адресация. Относительный адрес ЕА формируется путем сложения
содержимого базового регистра (ВХ, ВР) и смещения d8 или d16. Базовая
адресация реализуется при MOD = 01 или 10 и значениях R/M = 110 или 111
(см. табл. 2.9).
Индексная адресация. Относительный адрес ЕА формируется путем сложения
содержимого индексного регистра (SI, DI) и смещения d8 или d16. Для
реализации этого способа задаются значения MOD = 01 или 10 и R/M = 100
или 101 (см. табл. 2.8). При формировании 32-разрядных адресов в качестве
базового или индексного может использоваться любой из регистров: ЕАХ,
ЕСХ, EDX, ЕВХ, EBP, ESI, EDI (см. табл. 2.9).
Базово-индексная адресация. Относительный адрес ЕА образуется путем
сложения содержимого базового (ВХ, ВР) и сегментного регистров (SI, DI).
Такой способ адресации операнда реализуется при значениях поля R/M =
000,001,010,011, если задано MOD = 00 (см. табл. 2.10).
Базово-индексная адресация со смещением. Это вариант базово-индексной
адресации, при котором к относительному адресу ЕА дополнительно
прибавляется смещение d8 или d16. Данный способ адресации осуществляется
при значениях поля MOD = 01 или 10 (см. табл. 2.8).
Дополнительные способы адресации реализуются при использовании 32-
разрядных адресов, если задано значение R/M = 100 и команда содержит байт
SIB. При этом поля INDEX и BASE определяют коды регистров, содержимое
которых определяет индекс и базу для формирования адреса операнда (см.
Предыдущая << 1 .. 41 42 43 44 45 46 < 47 > 48 49 50 51 52 53 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed