На главную Назад
Добро пожаловать, уважаемый посетитель!

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 для указания исходного и целевого регистров.


 

Mail.ru