Смекни!
smekni.com

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

00 ?????? <—— áàéò ñïåöèôèêàòîð îïåðàíäà

ëèòåðàë

Ñ ïîìîùüþ ëèòåðàëà â èíñòðóêöèè ìîãóò áûòü ïðåäñòàâëåíû öåëûå ÷èñëà â äèàïàçîíå îò 0 äî 63. Ìíåìîíèêà íà àññåìáëåðå S^#n, ãäå n - ëèòåðàë. Ðàññìîòðèì èíñòðóêöèþ MOVL S^#18,R3 êîòîðàÿ â ïàìÿòè áóäåò ïðåäñòàâëåíà â âèäå D0 18 53. Çäåñü D0 - êîä èíñòðóêöèè, 18 - ëèòåðàë, 53 - ðåãèñòð R3 ïðè ïðÿìîé àäðåñàöèè.

Äî îïåðàöèè MOVL S^#18,R3

R3 = 00001234

Ïîñëå...

R3 = 00000018

Èç ïðèìåðà âèäíî, ÷òî ëèòåðàë áûë çàíåñåí â ðåãèñòð R3

2.9 ÈÍÄÅÊÑÍÛÉ ÐÅÆÈÌ

Îäíèì èç íàèáîëåå ìîùíûõ ñðåäñòâ àäðåñàöèè â ÑÌ1700 ÿâëÿåòñÿ èñïîëüçîâàíèå ðåãèñòðîâ îáùåãî íàçíà÷åíèÿ äëÿ îïðåäåëåíèÿ èíäåêñà ýëåìåíòà â ìàññèâà äàííûõ. Âîò ôîðìàò ñïåöèôèêàòîðà êîìàíäû:

15 11 7 3 0

ÊÁÐÀ ÍÁÐ ÊÈÐ ÍÈÐ

ãäå ÊÁÐÀ - êîä áàçîâîãî ðåæèìà àäðåñàöèè,

ÍÁÐ - íîìåð áàçîâîãî ðåãèñòðà,

ÊÈÐ - êîä èíäåêñíîãî ðåæèìà (0100),

ÍÈÐ - íîìåð èíäåêñíîãî ðåãèñòðà.

Êàê âèäíî ðàçðÿäû 15 - 8 ñîäåðæàò âòîðîé ñïåöèôèêàòîð îïåðàíäà, êîòîðûé íàçûâàåòñÿ áàçîâûì. Îí ìîæåò îïðåäåëÿòü ëþáîé ðåæèì àäðåñàöèè, êðîìå ðåãèñòðîâîãî, êîðîòêîãî ëèòåðàëà è èíäåêñíîãî. Åñëè áàçîâûé ñïåöèôèêàòîð òðåáóåò ðàñøèðåíèÿ, òî ýòî ðàñøèðåíèå ñëåäóåò íåïîñðåäñòâåííî çà ñïåöèôèêàòîðîì. Ñïåöèôèêàòîð îáû÷íî îïðåäåëÿåò àäðåñ íà÷àëà ìàññèâà, à â èíäåêñíîì ðåãèñòðå Rx ñîäåðæèòñÿ íîìåð ýëåìåíòà ìàññèâà. Ïðè îïðåäåëåíèè ýôôåêòèâíîãî àäðåñà îïåðàíäà ñíà÷àëà âû÷èñëÿåòñÿ áàçîâûé àäðåñ ìàññèâà èëè òàáëèöû. Çàòåì ñîäåðæèìîå èíäåêñíîãî ðåãèñòðà óìíîæàåòñÿ íà 1, 2, 4 èëè 8, â çàâèñèìîñòè îò ðàçìåðà îïåðàíäà è ïðèáàâëÿåòñÿ ê áàçîâîìó àäðåñó. Èñïîëüçóÿ ýòîò ðåæèì àäðåñàöèè ñîâìåñòíî ñ óæå îïèñàííûìè ìîæíî ïîëó÷èòü ñëåäóþùèå ðåæèìû àäðåñàöèè :

1. Êîñâåííî-ðåãèñòðîâûé èíäåêñíûé, (Rn)[Rx].

2. Ñ àâòîóâåëè÷åíèåì èíäåêñíûé, (Rn)+[Rx].

3. Êîñâåííûé ñ àâòîóâåëè÷êíèåì èíäåêñíûé, @(Rn)+[Rx].

4. Ñ àâòîóìåíüøåíèåì èíäåêñíûé, -(Rn)[Rx].

5. Ñìåùåíèÿ èíäåêñíûé, N^X(Rn)[Rx], ãäå N ìîæåò ïðèíèìàòü çíà÷åíèÿ B, W, L.

6. Êîñâåííûé ñìåùåíèÿ èíäåêñíûé, @N^X(Rn)[Rx]

Ïðè ðàáîòå ñî ñòðóêòóðàìè äàííûõ èíäåêñíûé ðåæèì ãîðàçäî óäîáíåå, ÷åì ïðîñòî ðåæèì ñìåùåíèÿ. Âî-ïåðâûõ, çäåñü èìååòñÿ ìîùíûé ðåæèì çàäàíèÿ íà÷àëüíîãî àäðåñà ìàññèâà ñ ïîìîùüþ îäíîãî èç îñíîâíûõ ðåæèìîâ àäðåñàöèè, ÷òî ïîçâîëÿåò ëåãêî ìîäèôèöèðîâàòü ýòîò àäðåñ. Âî âòîðûõ, ïðîãðàììèñò â èíäåêñíîì ðåãèñòðå [Rx] óêàçûâàåò òîëüêî íîìåð ýëåìåíòà, à íåîáõîäèìîå ñìåùåíèå âû÷èñëÿåòñÿ àâòîìàòè÷åñêè èç êîíòåêñòà îïåðàíäà. Òàê, èíñòðóêöèÿ CLRB B^2(R4), ðåàëèçóþùàÿ ðåæèì ñìåùåíèÿ ( ïóíêò 2.6 ) ìîæåò âûãëÿäåòü êàê CLRB (R0)[R4] è åñëè â R0 íàõîäèòñÿ àäðåñ ìàññèâà, à â R4 ñìåùåíèå, òî îíà àíàëîãè÷íî ïåðâîé èíñòðóêöèè î÷èñòèò 3èé ýëåìåíò ìàññèâà.

Äî îïåðàöèè 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 ÿâëÿåòñÿ ñ÷åò÷èêîì èíñòðóêöèé, è îäíîâðåìåííî ðåãèñòðîì îáùåãî íàçíà÷åíèÿ, òî åñòü äîñòóïåí ïðîãðàììèñòó äëÿ èñïîëüçîâàíèÿ â êà÷åñòâå áàçîâîãî ðåãèñòðà è ò.ä. Ýòî î÷åíü óïðîùàåò æèçíü ïðîãðàììèñòó, îäíàêî òðåáóåò ïîâûøåííîé âíèìàòåëüíîñòè,òàê êàê èñïîëüçîâàíèå ýòîãî ðåãèñòðà íàïðèìåð ïðè àäðåñàöèè ñ àâòîóìåíüøåíèåì ïðèâåäåò ê íåïðåäñêàçóåìîìó ðåçóëüòàòó. Ôàêòè÷åñêè ñî ñ÷åò÷èêîì èíñòðóêöèé èñïîëüçóþòñÿ òîëüêî ÷åòûðå ðåæèìà àäðåñàöèè: ñ àâòîóâåëè÷åíèåì, êîñâåííûé ñ àâòîóâåëè÷åíèåì, ñìåùåíèÿ è êîñâåííûé ñìåùåíèÿ. Ýòî äàåò ñ òî÷êè çðåíèÿ ïðîãðàììèñòà ( íî íå àïïàðàòíî ) ÷åòûðå äîïîëíèòåëüíûõ ðåæèìà àäðåñàöèè: íåïîñðåäñòâåííûé, àáñîëþòíûé, îòíîñèòåëüíûé è êîñâåííî-îòíîñèòåëüíûé.