|
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 для
доступа кданным, когда требуетсяболее
одного сенмента.Обычной
операцией такого рода являетсякопирование данных из одной области
памяти вдругую. Между областями, находящимисяне внутри одного и
того же блока памяти размером 64К,
невозможно произвести обмен дан-
ными, используя единственный
сегментныйрегистр. Имея в распоряже-
нии дополнительныйсегментный регистр, программа,как
показано на
Фиг. 3.7,может указать одновременно исходныйи целевой сегменты.
РегистрDSуказываетобластьисходныхданных,арегистр ES -
іі
ГДДДДДДДДДДДДДДДДДДДДґ ДДДДД
DS
Копировать іСегмент -і
отсюдаДДДДДДДДґі
ііисточникі
іГДДДДДДДДДДДДДДДДДДДДґ
ііі
ііі
іГДДДДДДДДДДДДДДДДДДДДґ ДДДДД
ES
ііСегменті
ііі
сюдаДДДДДДДДґназначенияі
ГДДДДДДДДДДДДДДДДДДДДґ
Фиг.3.7 Копирование из сегмента в сегмент
сегментназначения.Дляпередачиданныхсуществуют специальные
строковые команды,которые автоматически используютрегистры DS и
ES для указания исходного и целевого
регистров.
|