"Ассемблер и программирование для IBM PC. (IBM PC assembler language and programming)" - читать интересную книгу автора (Абель Питер, Переводчик: Ю.В.Сальников)

содержимого регистра CS плюс смещение в регистре IP. Например,
предположим, что регистр CS содержит шест.04AF (действительный адрес
04AF0), а регистр IP содержит шест. 0023:

CS: 04AF0
IP: 0023
-----
Адрес команды: 04B13

Если, например, по адресу 04B13 находится команда:

A11200 MOV AX,[0012]
|
Адрес 04B13

то в памяти по адресу 04B13 содержится первый байт команды. Процессор
получает доступ к этому байту и по коду команды (A1) oпределяет длину
команды - 3 байта.
Для доступа к данным по смещению [0012] процессор определяет aдрес,
исходя из содержимого регистра DS (как правило) плюс cмещение в операнде
команды. Если DS содержит шест.04B1 (реальный адрес 04B10), то
результирующий адрес данных определяется cледующим образом:

DS: 04B10
Смещение: 0012
-----
Адрес данных: 04B22

Предположим, что по адресам 04B22 и 04B23 содержатся следующие
данные:

Содержимое: 24 01
| |
Адрес: 04B22 04B23

Процессор выбирает значение 24 из ячейки по адресу 04B22 и помещает
его в регистр AL, и значение 01 по адресу 04B23 - в регистр AH. Регистр AX
будет содержать в результате 0124. В процессе выборки каждого байта
команды процессор увеличивает значение регистра IP на единицу, так что к
началу выполнения следующей команды в нашем примере IP будет содержать
смещение 0026. Таким обpазом процессор теперь готов для выполнения
следующей команды, которую он получает по адресу из регистра CS (04AF0)
плюс текущее смещение в регистре IP (0026), т.е. 04B16.


Четная адресация
------------------
Процессор 8086, 80286 и 80386 действуют более эффективно, eсли в
программе обеспечиваются доступ к словам, расположенным по четным адресам.
В предыдущем примере процессор может сделать oдну выборку слова по адресу