Архитектура вычислительных систем


/r — Indicates that the ModR/M byte of the instruction contains a register operand and an r/m operand. cb, cw, cd, cp, co, ct



бет3/5
Дата05.03.2023
өлшемі1,31 Mb.
#71719
түріЛабораторная работа
1   2   3   4   5
/r — Indicates that the ModR/M byte of the instruction contains a register operand and an r/m operand.
cb, cw, cd, cp, co, ct — A 1-byte (cb), 2-byte (cw), 4-byte (cd), 6-byte (cp), 8-byte (co) or 10-byte (ct) value following the opcode. This value is used to specify a code offset and possibly a new value for the code segment register. (Это значение используется для указания смещения кода и, возможно, нового значения для регистра сегмента кода.)

Многие инструкции, которые ссылаются на операнд в памяти, имеют байт спецификатора формы адресации (называемый байтом ModR/M), следующий за основным кодом операции. Байт ModR/M содержит три поля информации:
• Поле mod в сочетании с полем r/m формирует 32 возможных значения: восемь регистров и 24 режима адресации.
• Поле reg/opcode указывает либо номер регистра, либо еще три бита информации о коде операции. Назначение поля reg/opcode указывается в основном коде операции.
• Поле r/m может указывать регистр в качестве операнда или может быть объединено с полем mod для кодирования режим адресации. Иногда определенные комбинации поля mod и поля r/m используются для выражения информации о коде операции для некоторых инструкций.

Поле R/M в сочетании с MOD указывает либо на


Второй операнд в двухоперандной инструкции, или
Единственный операнд в инструкции с одним операндом, такой как NOT или NEG.
Бит d в коде операции определяет, какой операнд является источником, а какой операндом.

008F1873 89 04 8D 38 A1 8F 00 mov dword ptr cMas (08FA138h)[ecx*4],eax


89 (89 /r): Move r32 to r/m32 – помещение значения регистра 32 бит в регистр/память 32 бит


04 (00 000 100):





REG (000): регистр eax


MOD - смещение (00) и R/M (100): SIB mode

8D (10 001 101) – SIB (Scaled Index Byte):


10: scale = 4


001: index = ecx
101: base = displacement only, cause of MOD = 00 (нет регистра)

[08FA138h + ecx*4]









Достарыңызбен бөлісу:
1   2   3   4   5




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет