Îòíîñèòåëüíûé àäðåñ ESI(SI)
5. Àäðåñàöèÿ ýëåìåíòà ñòðîêè-ïðèåìíèêà.
Ñåãìåíòíûé ðåãèñòð ES
Îòíîñèòåëüíûé àäðåñ EDI(DI)
6. Àäðåñàöèÿ îïåðàíäà ñ èñïîëüçîâàíèåì â êà÷åñòâå áàçîâîãî ðåãèñòðà EBP(BP) èëè ESP(SP).
Ñåãìåíòíûé ðåãèñòð SS èëè (CS,DS,ES,FS,GS)
Îòíîñèòåëüíûé àäðåñ EA
Ýôôåêòèâíûé àäðåñ îïåðàíäà EA ÿâëÿåòñÿ 16- èëè 32-ðàçðÿäíûì è ôîðìèðóåòñÿ â çàâèñèìîñòè îò çíà÷åíèÿ îïðåäåëåííûõ ïîëåé â ïðåäñòàâëåíèè êîìàíäû.  îáùåì ñëó÷àå EA îáðàçóåòñÿ ïóòåì ñëîæåíèÿ òðåõ êîìïîíåíò:
 ðàçíûõ ñëó÷àÿõ äëÿ ôîðìèðîâàíèÿ EA èñïîëüçóþòñÿ ëèáî âñå ëèáî ÷àñòü ýòèõ ñëàãàåìûõ. Òåïåðü ðàññìîòðèì êîíêðåòíûå ñïîñîáû àäðåñàöèè.
3.1 ÍÅÏÎÑÐÅÄÑÒÂÅÍÍÀß ÀÄÐÅÑÀÖÈß.
 êà÷åñòâå îïåðàíäà èñïîëüçóåòñÿ îäèí, äâà èëè ÷åòûðå ïîñëåäíèõ áàéòà êîìàíäû. Òàêîé ñïîñîá àäðåñàöèè ðåàëèçóåòñÿ ïðè âûïîëíåíèè ðÿäà êîìàíä ïåðåñûëêè (MOV, PUSH), àðèôìåòè÷åñêèõ îïåðàöèÿõ (ADD, ADC, SUB, SBB, CMP, IMUL), è ëîãè÷åñêèõ (AND, OR, XOR, TEST). Ðàññìîòðèì ïðîñòîé ïðèìåð - óìíîæåíèå ñîäåðæèìîãî ðåãèñòðà íà êîíñòàíòó:
Ðåãèñòðû äî âûïîëíåíèÿ IMUL AX,5
AX = 10
Ïîñëå...
AX = 50
3.2 ÐÅÃÈÑÒÐÎÂÀß ÀÄÐÅÑÀÖÈß.
Ïðè ýòîì ñïîñîáå àäðåñàöèè îïåðàíäîì áåðåòñÿ ñîäåðæèìîå ðåãèñòðà. Íàïðèìåð äëÿ îïåðàöèè çàíåñåíèÿ íà ñòåê ðåàëèçàöèÿ ðåãèñòðîâîãî ñïîñîáà àäðåñàöèè áóäåò âûãëÿäåòü êàê PUSH DS.
Ðåãèñòðû äî âûïîëíåíèÿ PUSH DS
DS = 5678h
SP = FFFEh
SS:FFFE = 0000h
Ïîñëå...
DS = 5678
SP = FFFDh
SS:FFFD = 5678
SS:FFFE = 0000
Êàê âèäíî èç ïðèìåðà çíà÷åíèå ðåãèñòðà DS áûëî çàíåñåíî íà ñòåê.
3.3 ÊÎÑÂÅÍÍÎ-ÐÅÃÈÑÒÐÎÂÀß ÀÄÐÅÑÀÖÈß.
Ïðè òàêîé àäðåñàöèè îòíîñèòåëüíûé àäðåñ ñîäåðæèòñÿ â èíäåêñíîì (SI, DI, ESI, EDI) èëè áàçîâîì ( BX, BP, EBX, EBP) ðåãèñòðàõ èëè â ðåãèñòðàõ îáùåãî íàçíà÷åíèÿ EAX, ECX, EDX. Àäðåñ îïåðàíäà âû÷èñëÿåòñÿ êàê ñåãìåíò:ñìåùåíèå. Ñìåùåíèå ïðåäñòàâëåíî ýôôåêòèâíûì àäðåñîì.
Äëÿ ïðèìåðà ðàññìîòðèì êîìàíäó MOV EBX,[EDI], êîòîðàÿ ïåðåñûëàåò ñîäåðæèìîå ÿ÷åéêè DS:[EDI] â ðåãèñòð EBX. (  êà÷åñòâå ðàçìåðà îïåðàíäà áåðåòñÿ äâîéíîå ñëîâî - 4 áàéòà.
Ðåãèñòðû äî âûïîëíåíèÿ MOV EBX,[EDI]
EBX = 5678h
EDI = 0100h
DS:0100h = 1221h (edi)
Ïîñëå...
EBX = 1221h <——— 1221h
EDI = 0100h
DS:0100h = 1221h
Ïðèìåð â êîììåíòàðèÿõ íå íóæäàåòñÿ. ×èñëî, àäðåñ êîòîðîãî DS:EDI áûëî óñïåøíî çàíåñåíî â ðåãèñòð EBX. Ðåãèñòð DS èñïîëüçîâàëñÿ ïî óìîë÷àíèþ.
3.4 ÏÐßÌÀß ÀÄÐÅÑÀÖÈß.
Ïðè ýòîì ñïîñîáå àäðåñàöèè ñìåùåíèå â ñåãìåíòå äî îïåðàíäà çàäàíî â âèäå ñëîâà èëè äâîéíîãî ñëîâà â êîäå êîìàíäû. Äëÿ ïðèìåðà âîçüìåì îïåðàöèþ MOV EAX,[1994h], ïåðåñûëàþùóþ äâîéíîå ñëîâî ïî àäðåñó DS:1994 â ðåãèñòð EAX.
Ðåãèñòðû äî âûïîëíåíèÿ MOV EAX,[1994h]
EAX = 0000h
DS:1994h = 5000h
Ïîñëå...
EAX = 5000h <—— 5000h
DS:1994h = 5000h
Èç ïðèìåðà âèäíî, ÷òî ÷èñëî, ïðÿìî àäðåñîâàííîå êàê ds:[1994h] áûëî ñêîïèðîâàíî â çàäàííûé ðåãèñòð.
3.5 ÁÀÇÎÂÀß ÀÄÐÅÑÀÖÈß.
Îòíîñèòåëüíûé àäðåñ îïåðàíäà ôîðìèðóåòñÿ ïðè ñëîæåíèè ñîäåðæèìîãî áàçîâîãî ðåãèñòðà ñ íåïîñðåäñòâåííûì ñìåùåíèåì. Ñìåùåíèå ìîæåò áûòü ïðåäñòàâëåíî ñëîâîì èëè äâîéíûì ñëîâîì. Ðàññìîòðèì èíñòðóêöèþ ADD AX,[BP+10h], êîòîðàÿ ê ñîäåðæèìîìó ðåãèñòðà AX ïðèáàâëÿåò ÷èñëî, àäðåñ êîòîðîãî DS:[BP+10h]...
Ðåãèñòðû äî âûïîëíåíèÿ ADD AX,[BP+10h]
AX = 0067h
BP = 0100h
DS:0100h = 0000h (bp)
DS:0101h = 0001h
· · · · · ·
DS:0109h = 0009h
DS:0110h = 0010h (bp+10h)
Ïîñëå...
AX = 0077h <—— (67h+10h = 77h)
BP = 0100h
DS:0100h = 0000h
DS:0101h = 0001h
· · · · · ·
DS:0109h = 0009h
DS:0110h = 0010h
Êàê âèäíî èç ïðèìåðà, ê ñîäåðæèìîìó BP áûëî äîáàâëåíî 10h è ïîëó÷èëîñü ñìåùåíèå 110h, ïî êîòîðîìó è áûëî âçÿòî ÷èñëî, ïðèáàâëåííîå ê AX.
3.6 ÈÍÄÅÊÑÍÀß ÀÄÐÅÑÀÖÈß.