Микропроцессорные системы и программное обеспечение в средствах связи. Гребешков А.Ю. - 83 стр.

UptoLike

Составители: 

Рубрика: 

Микропроцессорные системы и программное обеспечение в средствах связи
83
Поле «Код операции» содержит данные об операционном коде,
указывает процессору, какая инструкция должна быть выполнена. Кро-
ме того, в состав данного поля могут входить биты, описывающие раз-
мер и тип ожидаемого операнда. Например, у инструкции NOT (логиче-
ская функция или операция «НЕ»,), соответствующий КОП = 1111011w,
где бит w определяет, является операнд
словом или байтом. Код опе-
рации «OR» = 000010dw, где бит d определяет, какой операнд является
источником, а какойадресатом, бит w определяет является операнд
словом или байтом. В некоторых случаях размер т.е. разрядность поля
кода операции может достигать 3 байт.
Поле «Mod R/M» указывает, какие регистры или сегменты физи-
ческой памяти используются в качестве
источников операндов. Поле
mod указывает на значение операнда, например, если mod = 00, то reg1
содержит абсолютный адрес ячейки памяти операнда; если mod=11, то
reg1 содержит собственно операнд. В свою очередь, поля reg1 и reg2
имеют формат трехбитных кодов регистра, и указывают коды регист-
ров, которые содержат операнды для выполнения операции в поле
КОП. Это соответствует непосредственной адресации.
В некоторых
операциях с плавающей точкой reg2 может содержать дополнительные
биты КОП, а не код регистра.
Поле «SIB» (сокращённая форма от выражения Scale x
Index + Base) используется только в случае 32-х разрядного режима и
является расширением адресного формата. Это поле состоит из ком-
бинации двух регистров (Index, Base) и масштабного коэффициента
(Scale). Для составляющих данного поля используется расчётная
фор-
мула (Index×2
^Scale
) + Base, результат вычислений по которой заменяет
значение в поле reg1.
Поле «Смещение» используется при значении mod = 01 или mod
= 10, значение данного поля представляет собой часть адреса операн-
  Микропроцессорные системы и программное обеспечение в средствах связи
     Поле «Код операции» содержит данные об операционном коде,
указывает процессору, какая инструкция должна быть выполнена. Кро-
ме того, в состав данного поля могут входить биты, описывающие раз-
мер и тип ожидаемого операнда. Например, у инструкции NOT (логиче-
ская функция или операция «НЕ»,), соответствующий КОП = 1111011w,
где бит w определяет, является операнд словом или байтом. Код опе-
рации «OR» = 000010dw, где бит d определяет, какой операнд является
источником, а какой – адресатом, бит w определяет является операнд
словом или байтом. В некоторых случаях размер т.е. разрядность поля
кода операции может достигать 3 байт.
     Поле «Mod R/M» указывает, какие регистры или сегменты физи-
ческой памяти используются в качестве источников операндов. Поле
mod указывает на значение операнда, например, если mod = 00, то reg1
содержит абсолютный адрес ячейки памяти операнда; если mod=11, то
reg1 содержит собственно операнд. В свою очередь, поля reg1 и reg2
имеют формат трехбитных кодов регистра, и указывают коды регист-
ров, которые содержат операнды для выполнения операции в поле
КОП. Это соответствует непосредственной адресации. В некоторых
операциях с плавающей точкой reg2 может содержать дополнительные
биты КОП, а не код регистра.
     Поле    «SIB»          (сокращённая    форма   от   выражения   Scale   x
Index + Base) используется только в случае 32-х разрядного режима и
является расширением адресного формата. Это поле состоит из ком-
бинации двух регистров (Index, Base) и масштабного коэффициента
(Scale). Для составляющих данного поля используется расчётная фор-
                  ^Scale
мула (Index × 2            ) + Base, результат вычислений по которой заменяет
значение в поле reg1.
     Поле «Смещение» используется при значении mod = 01 или mod
= 10, значение данного поля представляет собой часть адреса операн-


                                           83