INTEL 8088 имеет четыре сегментных регистра: CS,DS,SS и ES - для
кодового, данных-, стекового и дополнительного сегментов
соответственно. Это их обычное использование, но применение этих
регистров может именяться в соответствии с потребностями программы.
8088 использует регистр сегмента программы для идентификации
того сегмента, который содержит выполняемую в данный момент
программу. В сочетании с указателем команд регистр CS используется
для указания текущей команды. Каждая выполняемая команда находится
в ячейке, на которую указывает пара регистров CS:IP.
Комбинация сегментного регистра с регистром смещения для
указания физического адреса записывается в виде сегмент:смещение,
например, CS:IP. Значение сегмента стоит перед двоеточием, смещение
- после. Такая нотация используется и для регистров, и для
абсолютных адресов. Вы можете писать такие адреса как CS:100,
DS:BX, 570:100, или 630:DI.
Регистр сегмента данных (DS) процессор использует для обычного
доступа к данным. Схемы адресации для операндов, которые мы
рассматривали в предыдущем пункте, дают 16-битовое смещение, и в
большинстве случаев для формирования исполнительного адреса процес-
сор комбинирует это смещение с ргеистром DS.
Регистр сегмента стека указывает на системный стек. Команды
PUSH, POP, CALL и RET управляют данными в стеке в позиции по адресу
SS:SP. Регистр SP - указатель стека - служит для определения
смещения в стеке. Кроме того, сегмент стека подразумевается по
умолчанию при адресации с использованием регистра BP. Это дает
доступ к данным в стеке с использованием в качестве указателя
регистра BP. В следующей главе есть пункт о стековых операциях,
который демонстрирует, каким образом адресация через BP упрощает
связь с данными в стеке.
Наконец, регистр дополнительного сегмента используется 8088 для