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

                                                            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.

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



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