Регистр общего назначения указывается в поле reg, которое может
предшествовать коду операции, или соответствовать полю reg байта "mod
r/m", или соответствовать полю r/m байта "mod r/m".
Кодирование поля reg, когда поле w не присутствует в команде
+------------------------------------------------------------+
| Поле | Выбор регистра для | Выбор регистра для |
| reg | 16-разрядных операций | 32-разрядных операций |
+--------+------------------------+--------------------------|
| 000 | AX | EAX |
| 001 | CX | ECX |
| 010 | DX | EDX |
| 011 | BX | EBX |
| 100 | SP | ESP |
| 101 | BP | EBP |
| 110 | SI | ESI |
| 111 | DI | EDI |
+------------------------------------------------------------+
Кодирование поля reg, когда поле w присутствует в команде
+------------------------------------------------------------+
|Выбор регистра при помощи поля reg для 16-разрядных операций|
+------------------------------------------------------------|
| | Функция поля w |
| reg +---------------------------------------------------|
| | ( когда w = 0 ) | ( когда w = 1 ) |
+--------+------------------------+--------------------------|
| 000 | AL | AX |
| 001 | CL | CX |
| 010 | DL | DX |
| 011 | BL | BX |
| 100 | AH | SP |
| 101 | CH | BP |
| 110 | DH | SI |
| 111 | BH | DI |
+------------------------------------------------------------+
+------------------------------------------------------------+
|Выбор регистра при помощи поля reg для 32-разрядных операций|
+------------------------------------------------------------|
| | Функция поля w |
| reg +---------------------------------------------------|
| | ( когда w = 0 ) | ( когда w = 1 ) |
+--------+------------------------+--------------------------|
| 000 | AL | EAX |
| 001 | CL | ECX |
| 010 | DL | EDX |
| 011 | BL | EBX |
| 100 | AH | ESP |
| 101 | CH | EBP |
| 110 | DH | ESI |
| 111 | BH | EDI |
+------------------------------------------------------------+
E.2.3.3 Кодирование поля сегментного регистра ( sreg )
В командах, где необходимо указать один из четырех сегментных регистров
процессора 80286, используется 2-битное поле sreg. Для других коман данное
поле может иметь 3 бита: это позволяет использованть в них дополнительные
сегментные регистры процессора i486 - FS и GS.
2-разрядное поле sreg2
+---------------------------------------------------+
| 2-разрядное | Выбор сегментного |
| поле sreg2 | регистра |
+------------------------+--------------------------|
| 00 | ES |
| 01 | CS |
| 10 | SS |
| 11 | DS |
+---------------------------------------------------+
3-разрядное поле sreg3
+---------------------------------------------------+
| 3-разрядное | Выбор сегментного |
| поле sreg3 | регистра |
+------------------------+--------------------------|
| 000 | ES |
| 001 | CS |
| 010 | SS |
| 011 | DS |
| 100 | FS |
| 101 | GS |
| 110 | не используется |
| 111 | не используется |
+---------------------------------------------------+