Ðåôåðàòû. Ñèñòåìû àäðåñàöèè â Ìèíè- è ÌèêpîÝÂÌ

3.6  ÈÍÄÅÊÑÍÀß ÀÄÐÅÑÀÖÈß.


            Ïðèìåðíî òîæå ñàìîå, ÷òî è áàçîâàÿ àäðåñàöèÿ, îäíàêî çäåñü è èñïîëüçóþòñÿ èíäåêñíûå ðåãèñòðû ( SI,DI ) è ñìåùåíèå çàäàííîå áàéòîì èëè ñëîâîì. Ïðè ôîðìèðîâàíèè 32-ðàçðÿäíûõ àäðåñîâ, â êà÷åñòâå áàçîâîãî èëè èíäåêñíîãî ìîæåò èñïîëüçîâàòüñÿ ëþáîé èç ðåãèñòðîâ EAX, ECX, EDX, EBX, EBP, ESI, EDI.. Äëÿ ïðèìåðà âîçüìåì èíñòðóêöèþ MOV WORD PTR ES:[DI+2],AX, êîòîðàÿ ïî àäðåñó ES:[DI+2] çàøëåò ñëîâî èç AX.


Ðåãèñòðû äî âûïîëíåíèÿ MOV WORD PTR ES:[DI+2],AX


                                                            AX  = 0099h

                                                            DI  = 000Dh

                                                 ES:000Dh = 0000h                 (di)

                                                 ES:000Fh = 0000h                  (di+2)

Ïîñëå...

                                                            AX  = 0099h

                                                            DI  = 000Dh

                                                 ES:000Dh = 0000h

                                                 ES:000Fh = 0099h                  <—— 99h


Àäðåñ ÿ÷åéêè ES:000Fh áûë ïîñ÷èòàí êàê ñîäåðæèìîå DI ïëþñ 2 = F. ×èñëî 99h èç ðåãèñòðà AX óñïåøíî ñêîïèðîâàíî â ýòó ÿ÷åéêó ïàìÿòè.



3.7  ÁÀÇÎÂÎ-ÈÍÄÅÊÑÍÀß ÀÄÐÅÑÀÖÈß.


            Ïðè èñïîëüçîâàíèè ýòîãî ñïîñîáà îòíîñèòåëüíûé àäðåñ îáðàçóåòñÿ ïóòåì ñëîæåíèÿ ñîäåðæèìûõ áàçîâîãî ( BX,BP ) è èíäåêñíîãî ( SI,DI ) ðåãèñòðîâ. Íàïðèìåð äëÿ îïåðàöèè MOV AX,[BP+SI] ìû ïîëó÷èì:


Ðåãèñòðû äî âûïîëíåíèÿ MOV AX,[BP+SI]


                                                            AX  = 00AAh

                                                            BP  = 0100h

                                                            SI  = 0050h

                                                  DS:0100h = 0001h                 (bp)

                                             DS:0150h = 0002h                      (bp+si)

Ïîñëå...

                                                            AX  = 0002h                <—— 02h

                                                            BP  = 0100h

                                                            SI  = 0050h

                                                 DS:0100h = 0001h

                                                 DS:0150h = 0002h


Àäðåñ ÿ÷åéêè DS:0150h ïîëó÷åí ïóòåì ñëîæåíèÿ çíà÷åíèé ðåãèñòðîâ BP è SI, ïîñëå ÷åãî ÷èñëî èç ýòîé ÿ÷åéêè ïàìÿòè áûë çàãðóæåí â ðåãèñòð AX.



3.8  ÁÀÇÎÂÎ-ÈÍÄÅÊÑÍÀß ÀÄÐÅÑÀÖÈß ÑÎ ÑÌÅÙÅÍÈÅÌ.


            Ýòî âàðèàíò áàçîâî èíäåêñíîé àäðåñàöèè, ïðè êîòîðîì ê îòíîñèòåëüíîìó àäðåñó ïðèáàâëÿåòñÿ 8- èëè 16-ðàçðÿäíîå ñìåùåíèå. Äîïîëíèòåëüíûå ñïîñîáû àäðåñàöèè ðåàëèçóþòñÿ ïðè èñïîëüçîâàíèè 32-ðàçðÿäíûõ àäðåñîâ, êîãäà çàäàíî ñïåöèàëüíîå ïîëå (SIB) â êîäå êîìàíäû. Òîãäà âîçìîæíû êîíñòðóêöèè òèïà [EAX+EBX], [EAX+EAX], [ECX+EDX],  êà÷åñòâå èíäåêñíîãî ðåãèñòðà ìîæíî èñïîëüçîâàòü ëþáîé ðåãèñòð êðîìå ESP. Ñîäåðæèìîå ýòîãî ðåãèñòðà óìíîæàåòñÿ íà ìàñøòàáíûé êîýôôèöèåíò F ò.å. ñäâèãàåòñÿ âëåâî íà ÷èñëî ðàçðÿäîâ 0,1,3 èëè 4. Çíà÷åíèå F çàâèñèò îò ðàçìåðà äàííûõ. Äëÿ ïðèìåðà ðàññìîòðèì èíñòðóêöèþ MOV EAX,[EAX+EAX].


Ðåãèñòðû äî âûïîëíåíèÿ  MOV EAX,[EAX+EAX]


                                                            EAX  = 0010h

Ñòðàíèöû: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20



2012 © Âñå ïðàâà çàùèùåíû
Ïðè èñïîëüçîâàíèè ìàòåðèàëîâ àêòèâíàÿ ññûëêà íà èñòî÷íèê îáÿçàòåëüíà.