Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


јдресаци€ €чеек ќѕ




Ќапомним, что абсолютный (полный, физический) адрес (Aабс) в общем случае €вл€етс€ суммой адресов сегмента (Aсегм) и исполнительного адреса (Aисп), в свою очередь формируемого как сумма максимум 3-х адресов: смещени€ (Aсмещ), базы (Aбаз), и индекса (Aинд), то есть:

Aабс = Aсегм + Aисп = Aсегм + Aсмещ[+Aбаз][+Aинд]

ѕр€ма€ адресаци€ €чеек ќѕ имеет несколько вариантов:

l пр€ма€ обычна€: MOV AX, pole.

pole Ч символьное им€ переменной X, дл€ которой в ќѕ были предварительно отведены (или зарезервированы) €чейки пам€ти директивами типа: pole DB X, pole DW X и т. п.

¬ команде в качестве Aисп беретс€ Aсмещ первой €чейки пол€, отведенной дл€ переменной X.

l пр€ма€ с индексированием: MOV AX, pole[SI].

Aабс = Aсегм + [Aбаз] + Aсмещ

¬ команде в качестве Aисп беретс€ Aисп = Aсмещ + Aинд (Aинд находитс€ в регистре SI).

l пр€ма€ с базированием: MOV AX, pole[BX].

Aисп = Aсмещ + Aбаз,

Aбаз находитс€ в регистре BX.

l пр€ма€ с индексированием и базированием: MOV AX, pole[SI+BX].

Aисп = Aсмещ + Aинд + Aбаз

—уществуют два варианта косвенной адресации €чеек ќѕ:

l косвенна€ обычна€: MOV AX, [BX].

»сполнительный адрес извлекаетс€ из регистра BX, то есть Aисп = [BX].

l косвенна€ с индексированием: MOV AX, [BX+SI].

»сполнительный адрес беретс€ в виде суммы адресов, наход€щихс€ в регистрах BX и SI, Aисп = [BX] + [SI].

—мешанна€ непосредственна€ адресаци€ €чеек ќѕ имеет несколько вариантов:

l непосредственна€ обычна€: MOV AX, offset pole.

¬ качестве операнда беретс€ непосредственно смещение адреса первой €чейки пол€ пам€ти, отведенного дл€ переменной X; offset указывает, что беретс€ не значение переменной X, а именно смещение ее адреса;

l непосредственна€ с индексированием: MOV AX, [SI+const].

¬ качестве операнда беретс€ сумма значени€, хран€щегос€ в регистре SI, и величины const; const может быть задана числом, идентификатором, смещением адреса переменной (offset pole) или их комбинацией Ч простым выражением;

l непосредственна€ с базированием: MOV AX, [BX+const].

јналогично предыдущему варианту, но регистр SI замещен BX;

l непосредственна€ с базированием и индексированием: MOV AX, pole[SI+BX+const].

јналогично предыдущему, но вместо содержимого одного регистра беретс€ сумма содержимого регистров BX и SI.

ѕочти все команды ассемблера за редким исключением (исключени€: POP, PUSH, CALL, RET, IRET) в качестве Aсегм обычно используют по умолчанию адрес, наход€щийс€ в регистре DS (в исполн€емых программах типа.COM Ч в регистре CS); но регистр сегмента может быть задан и €вно, например: MOV AX, EX:pole; MOV AX, SS:[SI] и т. п.

ѕоследн€€ команда, в частности, позвол€ет реализовать пр€мой доступ к €чейке стековой пам€ти, стек при этом не измен€етс€.

 оманды POP, PUSH, CALL, RET, IRET используют сегмент стека (регистр SS).





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-10-01; ћы поможем в написании ваших работ!; просмотров: 451 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

„тобы получилс€ студенческий борщ, его нужно варить также как и домашний, только без м€са и развести водой 1:10 © Ќеизвестно
==> читать все изречени€...

1458 - | 1400 -


© 2015-2024 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.01 с.