Изучение архитектуры и системы команд INTEL-совместимых микропроцессоров. Коршунов А.Д. - 33 стр.

UptoLike

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

33
2.5. Окно разбора команды
Машинные коды имеют определенные поля, биты и группы битов, несущих
информацию о команде и используемых аргументах. Различные команды могут
иметь одинаковые поля, но разные значения этих полей, а могут иметь разные
поля. Представить и понять, каким образом происходит распознавание машинных
кодов, поможет окно разбора команды.
В данном окне в трех
столбцах располагаются байты команды программы в
памяти (в двоичном виде, каждый байт на новой строке), бит-маска, подобранная
к данной команде, и информация, получаемая из значений полей. Также в третьем
столбце находится вид команды Ассемблера и типы операндов, которые
обозначаются следующим образом:
r Регистр общего назначения.
r8 и r16 Регистр общего назначения
указанного размера (байт
или слово).
sr Сегментный регистр.
im Непосредственный операнд.
im8 и im16 Непосредственный операнд указанного размера (байт или
слово).
m Операнд в памяти.
m8 и m16 Операнд в памяти указанного размера (байт или слово).
CL Регистр CL.
(A|B) Выражение соответствует либо A, либо B.
, Запятая между первым и
вторым операндом (допустимо
несколько сочетаний операндов, перечисленных через | ).
Например, выражение «(r|m),r | r,(r|m)» означает, что один из операндов
является регистром, а другой может быть как регистром, так и операндом в
памяти.
2.6. Настройка
                                                                           33


          2.5. Окно разбора команды


    Машинные коды имеют определенные поля, биты и группы битов, несущих
информацию о команде и используемых аргументах. Различные команды могут
иметь одинаковые поля, но разные значения этих полей, а могут иметь разные
поля. Представить и понять, каким образом происходит распознавание машинных
кодов, поможет окно разбора команды.
    В данном окне в трех столбцах располагаются байты команды программы в
памяти (в двоичном виде, каждый байт на новой строке), бит-маска, подобранная
к данной команде, и информация, получаемая из значений полей. Также в третьем
столбце находится вид команды Ассемблера и типы операндов, которые
обозначаются следующим образом:
    r             Регистр общего назначения.
    r8 и r16            Регистр общего назначения указанного размера (байт
или слово).
    sr            Сегментный регистр.
    im            Непосредственный операнд.
    im8 и im16    Непосредственный операнд указанного размера (байт или
слово).
    m             Операнд в памяти.
    m8 и m16      Операнд в памяти указанного размера (байт или слово).
    CL            Регистр CL.
    (A|B)         Выражение соответствует либо A, либо B.
    ,             Запятая между первым и вторым операндом (допустимо
несколько сочетаний операндов, перечисленных через | ).
    Например, выражение «(r|m),r | r,(r|m)» означает, что один из операндов
является регистром, а другой может быть как регистром, так и операндом в
памяти.


          2.6. Настройка