Для доступа к машинной команде процессор определяет ее адрес из содержимого регистра 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.