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

Äî îïåðàöèè CLRB (R0)[R4]

                         

                                                                        R0  = 00001000

                                                                        R4  = 00000002

                                                           (00001000) = 00                      (R0)

                                                           (00001001) = 01

                                                           (00001002) = 02                      (R0)+[R4]*1

Ïîñëå...

                                                                        R0  = 00001000

                                                                        R4  = 00000002

                                                           (00001000) = 00                      (R0)

                                                           (00001001) = 01

                                                           (00001002) = 00                      <—— 0

   

Ïðèìåð äîêàçûâàåò àáñîëþòíóþ èäåíòè÷íîñòü ýòèõ èíñòðóêöèé.


2.10  ÐÅÆÈÌÛ ÀÄÐÅÑÀÖÈÈ Ñ ÈÑÏÎËÜÇÎÂÀÍÈÅÌ Ñ×ÅÒ×ÈÊÀ ÈÍÑÒÐÓÊÖÈÉ.

           

            Îäíèì èç íåóäîáñòâ îïèñàííûõ âûøå ñïîñîáîâ àäðåñàöèè ÿâëÿåòñÿ òî, ÷òî  âî âñåõ íèõ òðåáóåòñÿ ïðåäâàðèòåëüíàÿ çàãðóçêà îäíîãî èç ðåãèñòðîâ îáùåãî íàçíà÷åíèÿ. Òîëüêî ïîñëå òîãî, êàê ðåãèñòð çàãðóæåí, ñîäåðæèìîå åãî ìîæåò áûòü èñïîëüçîâàíî â êà÷åñòâå óêàçàòåëÿ íà÷àëà ìàññèâà, àäðåñà ýëåìåíòà è ò.ä. Ïðè îäíîêðàòíîì îáðàùåíèè ê ïðîèçâîëüíîé ÿ÷åéêå òàêîé ñïîñîá ÿâëÿåòñÿ íåóäîáíûì è íåýôôåêòèâíûì, òàê êàê òðåáóåò ïî ñóòè âûïîëíåíèÿ äâóõ îïåðàöèé âìåñòî îäíîé - ïðåäâàðèòåëüíîé çàãðóçêè àäðåñà â ðåãèñòð è ñîáñòâåííî îáðàùåíèå ê ïàìÿòè ÷åðåç ýòîò  ðåãèñòð ñ ïîìîùüþ îäíîãî èç ðåæèìîâ àäðåñàöèè. Îäíàêî ýòó îïåðàöèþ ìîæíî ðåàëèçîâàòü ãîðàçäî ïðîùå, åñëè èñïîëüçîâàòü ñ÷åò÷èê èíñòðóêöèé. Ðåãèñòð R15 ÿâëÿåòñÿ ñ÷åò÷èêîì èíñòðóêöèé, è îäíîâðåìåííî ðåãèñòðîì îáùåãî íàçíà÷åíèÿ, òî åñòü äîñòóïåí ïðîãðàììèñòó äëÿ èñïîëüçîâàíèÿ â êà÷åñòâå áàçîâîãî ðåãèñòðà è ò.ä. Ýòî î÷åíü óïðîùàåò æèçíü ïðîãðàììèñòó, îäíàêî òðåáóåò ïîâûøåííîé âíèìàòåëüíîñòè,òàê êàê èñïîëüçîâàíèå ýòîãî ðåãèñòðà íàïðèìåð ïðè àäðåñàöèè ñ àâòîóìåíüøåíèåì ïðèâåäåò ê íåïðåäñêàçóåìîìó ðåçóëüòàòó. Ôàêòè÷åñêè ñî ñ÷åò÷èêîì èíñòðóêöèé èñïîëüçóþòñÿ òîëüêî ÷åòûðå ðåæèìà àäðåñàöèè: ñ àâòîóâåëè÷åíèåì, êîñâåííûé ñ àâòîóâåëè÷åíèåì, ñìåùåíèÿ è êîñâåííûé ñìåùåíèÿ. Ýòî äàåò ñ òî÷êè çðåíèÿ ïðîãðàììèñòà ( íî íå àïïàðàòíî ) ÷åòûðå äîïîëíèòåëüíûõ ðåæèìà àäðåñàöèè: íåïîñðåäñòâåííûé, àáñîëþòíûé, îòíîñèòåëüíûé è êîñâåííî-îòíîñèòåëüíûé.

            Ðàññìîòðèì àëãîðèòì âûïîëíåíèÿ ðåæèìà ñ àâòîóâåëè÷åíèåì ïðè èñïîëüçîâàíèè ñ÷åò÷èêà èíñòðóêöèé â êà÷åñòâå ðåãèñòðà îáùåãî íàçíà÷åíèÿ. Ïî îïðåäåëåíèþ ðåæèìà ñ àâòîóâåëè÷åíèåì îïåðàöèÿ ïðîèçâîäèòñÿ íàä îïåðàíäîì, íà êîòîðûé óêàçûâàåò âûáðàííûé ðåãèñòð. Åñëè ìû èñïîëüçóåì ñ÷åò÷èê èíñòðóêöèé, òî îí â ýòîò ìîìåíò áóäåò óêàçûâàòü íà ÿ÷åéêó íåïîñðåäñòâåííî ñëåäóþùóþ çà ñïåöèôèêàòîðîì îïåðàíäà. Òàêèì îáðàçîì îïåðàíä  îêàçûâàåòñÿ íåïîñðåäñòâåííî â ïîòîêå èíñòðóêöèé. Ïîñëå âûáîðêè îïåðàíäà ñîäåðæèìîå ñ÷åò÷èêà óâåëè÷èòñÿ íà ðàçìåð îïåðàíäà, îïðåäåëÿåìûé êîäîì îïåðàöèè. Äëèíà êîíñòàíòû äîëæíà ñîîòâåòñòâîâàòü òèïó èíñòðóêöèè, äàæå åñëè åå ôàêòè÷åñêèé ðàçìåð ìåíüøå, òîëüêî òîãäà ïîñëå àâòîóâåëè÷åíèÿ ñîäåðæèìîãî ñ÷åò÷èêà èíñòðóêöèé îí áóäåò ñîäåðæàòü ïðàâèëüíûé àäðåñ ñëåäóþùåé êîìàíäû. Äëÿ ïðèìåðà ðàññìîòðèì èíñòðóêöèþ MOVB #10,(R2)

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



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