Реферат: Системы адресации в Мини- и МикpоЭВМ
2. ÑÈÑÒÅÌÛ ÀÄÐÅÑÀÖÈÈ ÈÑÏÎËÜÇÓÅÌÛÅ Â ÌÈÍÈ-ÝÂÌ
 ýòîé ãëàâå áóäóò ðàññìîòðåíû ñïîñîáû àäðåñàöèè äàííûõ, èñïîëüçóåìûå â ìèíè-ÝÂÌ íà ïðèìåðå ÑÌ1700. Ýòî ïåðâûé ïðåäñòàâèòåëü 32-ðàçðÿäíûõ ÝÂÌ ñåìåéñòâà ÑÌ. Âû÷èñëèòåëüíûé êîìïëåêñ ÑÌ1700 ïðåäñòàâëÿåò ñîáîé óíèâåðñàëüíóþ ÝÂÌ. Îäíà èç îñíîâíûõ öåëåé åãî ñîçäàíèÿ - ýòî ðàñøèðåíèå âèðòóàëüíîãî àäðåñíîãî ïðîñòðàíñòâà ïî ñðàâíåíèþ ñ 16-ðàçðÿäíîé ÑÌ4. Õîòÿ íåêîòîðûå èíñòðóêöèè âû÷èñëèòåëüíîãî êîìïëåêñà ÑÌ1700 èìåþò ñõîäñòâî ñ èíñòðóêöèÿìè ÑÌ4, ÑÌ1700 ïðåäñòàâëÿåò ñîáîé ïîëíîñòüþ íîâóþ àðõèòåêòóðó. Àïïàðàòíûå ñðåäñòâà ÑÌ1700 îðèåíòèðîâàíû íà ðåàëèçàöèþ ÿçûêîâ âûñîêîãî óðîâíÿ è ñèñòåìíûõ ïðîãðàìì, êîòîðûå èñïîëüçóþòñÿ îïåðàöèîííîé ñèñòåìîé è êîìïèëÿòîðîì. Ñèñòåìà êîìàíä ÑÌ1700 â íàñòîÿùåå âðåìÿ âêëþ÷àåò 304 èíñòðóêöèè è áîëåå 20 ðåæèìîâ àäðåñàöèè îïåðàíäîâ. Âñå ýòî äàåò âîçìîæíîñòü ïðîãðàììèñòó ñîñòàâëÿòü ýôôåêòèâíûå ïî îáúåìó è âðåìåíè âûïîëíåíèÿ ïðîãðàììû. Êàêèå æå ñïîñîáû àäðåñàöèè ïðåäóñìîòðåíû â ÑÌ1700? Ìû ðàññìîòðèì íåñêîëüêî ñïîñîáîâ àäðåñàöèè, êîòîðûå â îáùåì ìîæíî ïîäåëèòü íà ðåãèñòðîâûå, êîñâåííûå, èíäåêñíûå è ñïåöèàëüíûå.
2.1 ÐÅÃÈÑÒÐÎÂÛÉ ÐÅÆÈÌ ÀÄÐÅÑÀÖÈÈ
 ýòîì ðåæèìå îïåðàíäîì ÿâëÿåòñÿ ñîäåðæèìîå ðåãèñòðà.Ðàññìîòðèì èíñòðóêöèþ MOVL R2,R3. Äëÿ ÑÌ ÝÂÌ õàðàêòåðíî, ÷òî ïðèåìíèêîì âñåãäà ÿâëÿåòñÿ âòîðîé îïåðàíä äëÿ äâóõ- è òðåòèé äëÿ òðåõ-îïåðàíäíûõ èíñòðóêöèé. Ïîýòîìó èíñòðóêöèÿ MOVL R2,R3 ïåðåñûëàåò ñîäåðæèìîå ðåãèñòðà R2 â ðåãèñòð R3, à íå íàîáîðîò, êàê áûëî áû ñ àíàëîãè÷íîé èíñòðóêöèåé MOV AX,BX èç íàáîðà êîìàíä ïðîöåññîðîâ cåìåéñòâà 8086 ôèðìû Intel. Ïðèâåäåì ïðèìåð èñïîëüçîâàíèÿ ýòîãî ñïîñîáà àäðåñàöèè íà ïðèìåðå èíñòðóêöèè MOVL R2,R3. Åå ìàøèííàÿ çàïèñü áóäåò âûãëÿäåòü, êàê D0 52 53, ãäå D0 - êîä èíñòðóêöèè, à 52 è 53 - ïðÿìàÿ àäðåñàöèÿ, 2îé ðåãèñòð è ïðÿìàÿ àäðåñàöèÿ, 3èé ðåãèñòð ñîîòâåòñòâåííî.
Ïóñòü ñîäåðæèìîå ðåãèñòðîâ äî îïåðàöèè áûëî:
R2 = 00000010
R3 = 00001000
Òîãäà ïîñëå îíè áóäóò âûãëÿäåòü òàê:
R2 = 00000010
R3 = 00000010
Êàê âèäíî èç ïðèìåðà, ñîäåðæèìîå ðåãèñòðà R2 áûëî ñêîïèðîâàíî â R3.
2.2 ÊÎÑÂÅÍÍÎ-ÐÅÃÈÑÒÐÎÂÛÉ ÐÅÆÈÌ
 ýòîì ðåæèìå ñîäåðæèìîå ðåãèñòðà ÿâëÿåòñÿ àäðåñîì îïåðàíäà. Ìíåìîíèêà íà àññåìáëåðå (Rn), ãäå (Rn) ÿâëÿåòñÿ ðåãèñòðîì ñîäåðæàùèì ëèáî àäðåñ îïåðàíäà èñòî÷íèêà {MOVL (R2),R3} ëèáî àäðåñ îïåðàíäà ïðèåìíèêà {MOVL R2,(R3)}.  êà÷åñòâå ïðèìåðà îïÿòü ïðèâåäåì èíñòðóêöèþ ïåðåñûëêè äâîéíîãî ñëîâà MOVL R2,(R3). Êîä îïåðàöèè îñòàíåòñÿ òîò æå, à îïåðàíäû áóäóò ïðåäñòàâëåíû êàê 52 63, ãäå 63 - ýòî óæå êîñâåííàÿ àäðåñàöèÿ ñ èñïîëüçîâàíèåì 3ãî ðåãèñòðà. Ïðè òîì æå ñîäåðæèìîì ðåãèñòðîâ, ÷òî è â ïðåäûäóùåì ïðèìåðå, áóäåì èìåòü:
Äî îïåðàöèè 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 è àâòîóâåëè÷åíèå. Âîñüìåðêà â ïîñëåäíåì ñëó÷àå êàê ðàç è îçíà÷àåò äàííûé ðåæèì àäðåñàöèè.