Смекни!
smekni.com

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

Äî îïåðàöèè MOVL R2,(R3):

R2 = 00000010

R3 = 00001000

(00001000) = 00000200 (R3)

Ïîñëå...

R2 = 00000010

R3 = 00001000

(00001000) = 00000010

Ïîñëå îïåðàöèè ïåðåñûëêè çíà÷åíèå ÿ÷åéêè ïàìÿòè, àäðåñ êîòîðîé ñîäåðæàëñÿ â R3 (00001000) èçìåíèëñÿ ñ 000000200 íà 00000010.

2.3 ÐÅÆÈÌ Ñ ÀÂÒÎÓÂÅËÈ×ÅÍÈÅÌ

Ñïåöèàëüíî äëÿ îáðàáîòêè ìàññèâîâ äàííûõ â CM1700 ïðåäóñìîòðåíà àäðåñàöèÿ ñ àâòîóâóëè÷åíèåì.  ýòîì ðåæèìå ñîäåðæèìîå âûáðàííîãî ðåãèñòðà ÿâëÿåòñÿ àäðåñîì îïåðàíäà, êàê è ïðè êîñâåííî-ðåãèñòðîâîé àäðåñàöèè, îäíàêî ïîñëå âûïîëíåíèÿ îïåðàöèè ñîäåðæèìîå ðåãèñòðà óâåëè÷èâàåòñÿ íà N, â çàâèñèìîñòè îò òèïà îïåðàíäà:

N = 1, åñëè îïåðàíäîì ÿâëÿåòñÿ áàéò,

N = 2, åñëè îïåðàíäîì ÿâëÿåòñÿ ñëîâî,

N = 4, åñëè îïåðàíäîì ÿâëÿåòñÿ äâîéíîå ñëîâî,

N = 8, åñëè îïåðàíäîì ÿâëÿåòñÿ ó÷åòâåðåííîå ñëîâî èëè ñëîâî ñ ïëàâàþùåé çàïÿòîé,

N =16, åñëè îïåðàíäîì ÿâëÿåòñÿ öåëîå ñëîâî äëèíîé 128 ðàçðÿäîâ èëè äâîéíîå ñëîâî ñ ïëàâàþùåé çàïÿòîé.

Ðàññìîòðèì ýòîò ðåæèì àäðåñàöèè èñïîëüçóÿ êîìàíäó MOVL (R0),(R2)+.  ïàìÿòè èíñòðóêöèÿ áóäåò ïðåäñòàâëåíà êàê D0 60 82, ãäå 60 - êàê óæå ãîâîðèëîñü êîñâåííàÿ àäðåñàöèÿ ñ ðåãèñòðîì R0, à 82 - êîñâåííàÿ àäðåñàöèÿ ñ èñïîëüçîâàíèåì ðåãèñòðà R2 è àâòîóâåëè÷åíèå. Âîñüìåðêà â ïîñëåäíåì ñëó÷àå êàê ðàç è îçíà÷àåò äàííûé ðåæèì àäðåñàöèè.

Äî îïåðàöèè MOVL (R0),(R2)+

R0 = 00001000

R2 = 00001050

(00001000) = 000000AC (R3)

(00001050) = 00000000 (R2)

Ïîñëå...

R0 = 00001000

R2 = 00001054 <—— Óâåëè÷èëîñü íà 4

(00001000) = 000000AC

(00001050) = 000000AC

Êàê âèäíî ïðîèçîøëà ïåðåñûëêà ÷èñëà èç ÿ÷åéêè 00001000 â 00001050 è çíà÷åíèå ðåãèñòðà R2 óâåëè÷èëîñü íà 4. ( Èíñòðóêöèÿ MOVL ïåðåñûëàåò äâîéíûå ñëîâà. Îá ýòîì ãîâîðèò ñóôôèêñ 'L' - Long - äëèííîå èëè äâîéíîå ñëîâî. Ïîýòîìó R2 óâåëè÷èëñÿ íà 4. Âîîáùå ïðåäóñìîòðåíû îïåðàöèè ðàáîòàþùèå ñ áàéòàìè, ñëîâàìè, äâîéíûìè ñëîâàìè è èíîãäà ñ ó÷åòâåðåííûìè ñëîâàìè è èìåþùèå ñóôôèêñû B,W,L è Q ñîîòâåòñòâåííî.)

2.4 ÐÅÆÈÌ Ñ ÀÂÒÎÓÌÅÍÜØÅÍÈÅÌ

Ýòîò ðåæèì èäåíòè÷åí ðåæèìó ñ àâòîóâåëè÷åíèåì, îäíàêî çäåñü ïîñëå âûïîëíåíèÿ îïåðàöèè ñëåäóåò íå óâåëè÷åíèå, à óìåíüøåíèå îïåðàíäà ïî òåì æå ïðàâèëàì. Äëÿ ïðèìåðà ðàññìîòðèì êîìàíäó CLRB -(R5), êîòîðàÿ â ïàìÿòè áóäåò âûãëÿäåòü êàê 94 75. Çäåñü 94 - êîä îïåðàöèè, à 75 - çíà÷èò: èñïîëüçîâàòü ðåãèñòð R5 ( ?5 ) è ïðîèçâåñòè óìåíüøåíèå ïîñëå èñïîëíåíèÿ ( 7? ).

Äî îïåðàöèè CLRB -(R5)

R5 = 00001000

(00000FFF) = 0000001A

(000001000) = 0000001A (R5)

Ïîñëå...

R5 = 00000FFF <—— óìåíüøèëîñü íà 1

(00000FFF) = 0000001A (R5)

(000001000) = 00000000 <—— 0

Èçìåíåíèÿ õîðîøî âèäíû. ß÷åéêà 00001000, íà êîòîðóþ ïåðâîíà÷àëüíî óêàçûâàë ðåãèñòð R5 î÷èñòèëàñü ( CLRB - CLeaR Byte - î÷èñòèòü áàéò ),çíà÷åíèå ðåãèñòðà R5 óìåíüøèëîñü íà 1 è òåïåðü óêàçûâàåò íà ÿ÷åéêó ïàìÿòè ðàñïîëîæåííóþ ïåðåä ÿ÷åéêîé 00001000, ò.å. 00000FFF.

2.5 ÊÎÑÂÅÍÍÛÉ ÐÅÆÈÌ Ñ ÀÂÒÎÓÂÅËÈ×ÅÍÈÅÌ

 ýòîì ðåæèìå ñîäåðæèìîå âûáðàííîãî ðåãèñòðà ÿâëÿåòñÿ àäðåñîì àäðåñà îïåðàíäà, à ïîñëå âûïîëíåíèÿ îïåðàöèè ïðîèçâîäèòñÿ óâåëè÷åíèå ñîäåðæèìîãî ýòîãî ðåãèñòðà íà 4, íåçàâèñèìî îò ðàçìåðà îïåðàíäà. Ýòî îïðåäåëÿåòñÿ òåì, ÷òî ðåãèñòð ñîäåðæèò àäðåñ àäðåñà ( ò.å. àäðåñ ÿ÷åéêè, ñîäåðæèìîå êîòîðîé â ñâîþ î÷åðåäü èñïîëüçóåòñÿ êàê àäðåñ äëÿ ïîëó÷åíèÿ äåéñòâèòåëüíîãî îïåðàíäà ), à àäðåñ âñåãäà ïðåäñòàâëÿåòñÿ êàê äâîéíîå ñëîâî.

Äëÿ ïðèìåðà âîçüìåì îïåðàöèþ î÷èñòêè áàéòà, ìíåìîíèêà êîòîðîé íà àññåìáëåðå áóäåò âûãëÿäåòü êàê CLRB @(R5)+. Ñèìâîë '@' ( çþõà ) îçíà÷àåò èñïîëüçîâàíèå íå ïðîñòî ðåæèìà ñ àâòîóâåëè÷åíèåì, à èìåííî êîñâåííîãî. Ïðåäñòàâëåíèå ýòîé îïåðàöèè â ïàìÿòè áóäåò 94 95, ãäå 94 - êîä îïåðàöèè, 95 - îçíà÷àåò èñïîëüçîâàíèå ðåãèñòðà R5 è êîñâåííîé àäðåñàöèè ñ àâòîóâåëè÷åíèåì (öèôðà 9).