Смекни!
smekni.com

Системы адресации в Мини- и МикpоЭВМ (стр. 6 из 14)

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

Äî îïåðàöèè MOVB #10,(R2)

00000305 : 90 ÊÎÏ

00000306 : 8F <——— ïðåäñòàâëåíèå '(R15)+'

00000307 : 10 <——— êîíñòàíòà

00000308 : 62 <——— ïðåäñòàâëåíèå '(R2)'

R2 = 00001000

R15 = 00000305

(00001000) = FF (R2)

Ïîñëå...

R2 = 00001000

R15 = 00000309

(00001000) = 10 (R2)

Ïðè êîìïèëÿöèè èíñòðóêöèÿ MOVB #10,(R2) áûëà çàìåíåíà íà MOVB (R15)+(R2), à êîíñòàíòà áûëà ïîìåùåíà â ïîòîê èíñòðóêöèé, è áûëà óñïåøíî àäðåñîâàíà è ñêîïèðîâàíà ïî àäðåñó (00001000).

Åñëè èñïîëüçîâàòü êîñâåííûé ðåæèì ñ àâòîóâåëè÷åíèåì, òî ïî îïðåäåëåíèþ ðåæèìà ñîäåðæèìîå ñ÷åò÷èêà èíñòðóêöèé ÿâëÿåòñÿ íå àäðåñîì îïåðàíäà, à àäðåñîì àäðåñà îïåðàíäà, à ïîñëå âûïîëíåíèÿ èíñòðóêöèè çíà÷åíèå ñ÷åò÷èêà óâåëè÷èòñÿ íà 4, òàê êàê ìû ïåðåäàåì 32-ðàçðÿäíûå àäðåñà. Òàêèì îáðàçîì ìû èìååì âîçìîæíîñòü çàäàòü ïðÿìî â êîäå èíñòðóêöèè àáñîëþòíûé àäðåñ îïåðàíäà. Åñëè â ïðåäûäóùåì ïðèìåðå èñïîëüçîâàòü ýòîò ïðèìåð, òî ïî àäðåñó (00001000) áóäåò çàíåñåíî íå ÷èñëî 10, à çíà÷åíèå ÿ÷åéêè 10. Íà àññåìáëåðå òàêàÿ èíñòðóêöèÿ áóäåò èìåòü ìíåìîíèêó MOVB @#10,(R2):

Äî îïåðàöèè MOVB @#10,(R2)

00000305 : 90 ÊÎÏ

00000306 : 9F <——— ïðåäñòàâëåíèå '@(R15)+'

00000307 : 10

00000308 : 00

00000309 : 00