Assembler для начинающих

Сегментные регистры


    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 для

ааа фюёЄєяр ъа фрээvь, ъюуфр ЄЁхсєхЄё ааа сюыхх юфэюую ёхэьхэЄр.а +сvўэющ
ааа юяхЁрЎшхщ Єръюую Ёюфр  ты хЄё а ъюяшЁютрэшх фрээvї шч юфэющ юсырёЄш
ааа ярь Єш та фЁєує¦. ¦хцфє юсырёЄ ьш, эрїюф •шьшё а эх тэєЄЁш юфэюую ш
ааа Єюую цх сыюър ярь Єш ЁрчьхЁюь 64¦, эхтючьюцэю яЁюшчтхёЄш юсьхэ фрэ-
ааа эvьш, шёяюы№чє  хфшэёЄтхээvщ ёхуьхэЄэvща ЁхушёЄЁ. Lьх  т ЁрёяюЁ цх-
ааа эшш фюяюыэшЄхы№эvща ёхуьхэЄэvщ ЁхушёЄЁ, яЁюуЁрььр,ааааа ъръ яюърчрэю эр
ааа Lшу. 3.7,а ьюцхЄ єърчрЄ№ юфэютЁхьхээю шёїюфэvща ш Ўхыхтющ ёхуьхэЄv.
ааа ¦хушёЄЁа DSа єърчvтрхЄа юсырёЄ№а шёїюфэvїа фрээvї,ааааа ра ЁхушёЄЁ ES -
 
ааааааааааааааааа ¦аааааааааа аааа ¦
ааааааааааааааааа +--------------------+ ----- DS
аааа ¦юяшЁютрЄ№ а ¦аааа TхуьхэЄ -ааааа ¦
ааааа юЄё¦фрааааа --------+аааааааа аааа ¦
ааааа аааааа ¦ааа ¦аааа шёЄюўэшъааа аааа ¦
ааааа аааааа ¦ааа +--------------------+
ааааа аааааа ¦ааа ¦аааааааааа аааа ¦
ааааа аааааа ¦ааа ¦аааааааааа аааа ¦
ааааа аааааа ¦ааа +--------------------+ ----- ES
ааааа аааааа ¦ааа ¦ааааа TхуьхэЄааа аааа ¦
ааааа аааааа ¦ааа ¦аааааааааа аааа ¦
ааааа аё¦фр --------+ааа эрчэрўхэш ааааа ¦
ааааааааааааааааа +--------------------+
 
ааааа аа Lшу.3.7 ¦юяшЁютрэшх шч ёхуьхэЄр т ёхуьхэЄ
 
ааа ёхуьхэЄа эрчэрўхэш .а -ы а яхЁхфрўша фрээvїа ёє•хёЄтє¦Є ёяхЎшры№эvх
ааа ёЄЁюъютvх ъюьрэфv,а ъюЄюЁvх ртЄюьрЄшўхёъш шёяюы№чє¦Єа ЁхушёЄЁv DS ш
ааа ES фы  єърчрэш  шёїюфэюую ш Ўхыхтюую ЁхушёЄЁют.

Содержание раздела