Изучение архитектуры и системы команд INTEL-совместимых микропроцессоров. Коршунов А.Д. - 23 стр.

UptoLike

Составители: 

23
mov ax,bx
1.3.2. Непосредственная адресация
Некоторые команды (все арифметические команды, кроме деления)
позволяют указывать один из операндов непосредственно в тексте программы,
например команда
mov ax,2
помещает в регистр AX число 2.
1.3.3. Прямая адресация
Если известен адрес операнда, располагающегося в памяти, можно
использовать этот адрес. Если операндслово, находящееся в сегменте, на
который указывает ES, со смещением от начала сегмента 0001, то команда
mov ax,es:[0001h]
поместит это слово в регистр AX. Если селектор сегмента данных находится в DS,
имя сегментного регистра при прямой адресации можно не указывать, DS
используется по умолчанию. Прямая адресация иногда называется адресацией по
смещению.
1.3.4. Косвенная адресация
По аналогии с регистровыми и непосредственными операндами адрес
операнда в памяти также можно не указывать непосредственно, а
хранить в любом
регистре. До 80386 для этого можно было использовать только BX, SI, DI и BP.
Например, следующая команда помещает в регистр AX слово из ячейки памяти,
селектор сегмента которой находится в DS, а смещениев BX:
mov ax,[bx]
Как и в случае прямой адресации, DS всегда используется по умолчанию. Но
в реальных программах, если смещение берут из регистра BP, то в качестве
сегментного регистра используется SS.
                                                                           23
            mov    ax,bx



       1.3.2. Непосредственная адресация


    Некоторые команды (все арифметические команды, кроме деления)
позволяют указывать один из операндов непосредственно в тексте программы,
например команда
            mov    ax,2

помещает в регистр AX число 2.


       1.3.3. Прямая адресация


    Если известен адрес операнда, располагающегося в памяти, можно
использовать этот адрес. Если операнд — слово, находящееся в сегменте, на
который указывает ES, со смещением от начала сегмента 0001, то команда
            mov    ax,es:[0001h]

поместит это слово в регистр AX. Если селектор сегмента данных находится в DS,
имя сегментного регистра при прямой адресации можно не указывать, DS
используется по умолчанию. Прямая адресация иногда называется адресацией по
смещению.


       1.3.4. Косвенная адресация


    По аналогии с регистровыми и непосредственными операндами адрес
операнда в памяти также можно не указывать непосредственно, а хранить в любом
регистре. До 80386 для этого можно было использовать только BX, SI, DI и BP.
Например, следующая команда помещает в регистр AX слово из ячейки памяти,
селектор сегмента которой находится в DS, а смещение — в BX:
            mov    ax,[bx]

    Как и в случае прямой адресации, DS всегда используется по умолчанию. Но
в реальных программах, если смещение берут из регистра BP, то в качестве
сегментного регистра используется SS.