Смекни!
smekni.com

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

1. Êîñâåííî ðåãèñòðîâûé.

ÑÌ 1700 MOVB R1,(R2)

i386 MOV [EBX],EAX

2. Ñìåùåíèÿ.

ÑÌ 1700 MOVB W^32769(R4),R1

i386 MOV EAX,[EDX+32769]

3. Êîñâåííûé ñìåùåíèÿ.

ÑÌ 1700 MOVW @B^8(R5),(R2)

i386 MOV ESI,[EDI+8]

MOV AX, word ptr [ESI]

MOV word ptr [EDX],AX

4. Êîñâåííî ðåãèñòðîâûé èíäåêñíûé.

ÑÌ 1700 MOVB (R1)[R2],R3

i386 MOV CX,[BP+DI]

5. Ñìåùåíèÿ èíäåêñíûé.

ÑÌ 1700 MOVB B^5(R1)[R2],R3

i386 MOV EAX,[EBX+ECX+5]

 òàáëèöå ïðèâåäåíû ëèøü íåêîòîðûå ðåæèìû àäðåñàöèè, è ñåé÷àñ ìû ïîÿñíèì ïî÷åìó. Åñëè îáðàòèòü âíèìàíèå íà ïóíêò 3, òî âèäíî, ÷òî êîìàíäà, àíàëîãè÷íàÿ êîñâåííîìó ðåæèìó ñìåùåíèÿ çàìåíåíà íà 3 èíñòðóêöèè èç íàáîðà êîìàíä ïðîöåññîðà 80386. Äåéñòâèòåëüíî 386-îé ïðîöåññîð íå ïîíèìàåò êîíñòðóêöèé òèïà "àäðåñ àäðåñà", ïîýòîìó ïîäîáíûå ìàíèïóëÿöèè ïðèõîäèòñÿ äåëàòü ñ ïîìîùüþ äîïîëíèòåëüíîãî ðåãèñòðà. Áîëåå òîãî ñèñòåìà àäðåñàöèè ïðîöåññîðà 80386 íå äîïóñêàåò èñïîëüçîâàíèÿ êîìàíä ñ îáðàùåíèåì ïàìÿòü-ïàìÿòü. Ýòî îïÿòü çàñòàâëÿåò èñïîëüçîâàòü äîïîëíèòåëüíûå ðåãèñòðû. Îäíàêî â ñèñòåìå êîìàíä i386 ïðåäóñìîòðåíû êîìàíäû îáðàáîòêè ñòðîê. Ýòè êîìàíäû âî ìíîãèõ ñëó÷àÿõ ïîçâîëÿþò îáîéòèñü áåç ïîäîáíûõ ïðîáëåì. Âîò ýòè êîìàíäû:

MOVS{B,W,D} - ïåðåñëàòü ñòðîêó

STOS{B,W,D} - çàíåñòè â ïàìÿòü èç {AL,AX,EAX}

LODS{B,W,D} - çàíåñòè èç ïàìÿòè â {AL,AX,EAX}

CMPS{B,W,D} - ñðàâíèòü ñòðîêè

SCAS{B,W,D} - ñêàíèðîâàòü ñòðîêó

Âñå ýòè êîìàíäû ìîæíî èñïîëüçîâàòü ñ ïðåôèêñîì ïîâòîðåíèÿ REP. Ó ýòîãî ïðåôèêñà åñòü è óñëîâíûå ìîäèôèêàöèè REPE, REPZ, REPNE REPNZ è äðóãèå, ïðåêðàùàþùèå ïîâòîðåíèå ïî êàêîìó-òî ïðèçíàêó äî èñ÷åðïàíèÿ ñ÷åò÷èêà. Ñ ïîìîùüþ ïåðâûõ òðåõ êîìàíä è ðåàëèçóåòñÿ îñíîâíàÿ ðàáîòà ñ ïàìÿòüþ. Ýòè èíñòðóêöèè ìîæíî îõàðàêòåðèçîâàòü, êàê èñïîëüçóþùèå àâòîóâåëè÷åíèå èëè àâòîóìåíüøåíèå, òàê êàê îíè ïîñëå âûïîëíåíèÿ ìîäèôèöèðóþò òåêóùåå ñìåùåíèå, êîòîðîå õðàíèòñÿ â ðåãèñòðàõ ESI(SI),EDI(DI).  òîæå âðåìÿ MOVS ðåàëèçóåò àäðåñàöèþ "ïàìÿòü-ïàìÿòü". Ñ ïåðâîãî âçãëÿäà ýòîãî íåäîñòàòî÷íî äëÿ òîãî, ÷òîáû ýôôåêòèâíî èñïîëüçîâàòü íàïðèìåð ïîäîáèå êîñâåííîãî ñ àâòîóâåëè÷åíèåì èíäåêñíîãî ðåæèìà. Îäíàêî ýòè ñëîæíûå èíñòðóêöèè ëåãêî çàìåíÿþòñÿ íàáîðîì èíñòðóêöèé ïðîöåññîðà 80386. Íàïðèìåð ïåðåïèøåì êîìàíäó MOVL @(R1)+[R3],(R2)+ äëÿ ìàøèí íà áàçå i80386.

CLD

MOV ESI,[EAX+EBX]

MOVSD

Åñëè ïîëîæèòü, ÷òî EDI = R2, òî ðåçóëüòàò áóäåò òåì æå. Äàëåå ESI è EDI áóäóò óâåëè÷åíû íà 4 è äëÿ äàëüíåéøåé ïåðåñûëêè ìîæíî áûëî áû íàïèñàòü

MOV CX,1000

REP MOVSB

×òî ïðèâåëî áû ê ïåðåñûëêå 4000 áàéò èç DS:[ESI] â ES:[EDI]. Êîíå÷íî íóæíà íåêîòîðàÿ ïðåäâàðèòåëüíàÿ ïîäãîòîâêà, ê ïðèìåðó çàäàíèå íà÷àëüíûõ àäðåñîâ, óñòàíîâêà ñ÷åò÷èêà â ECX, çàäàíèå íàïðàâëåíèÿ (CLD/STD - ïðèáàâëÿòü èëè îòíèìàòü â ESI è(èëè) EDI), îäíàêî ïðèìåðíî òàêèå æå ïðèãîòîâëåíèÿ íåîáõîäèìû è â ïåðâîì ñëó÷àå.

Òàêèì îáðàçîì, ðàññìàòðèâàÿ è ñðàâíèâàÿ âîçìîæíûå ñïîñîáû àäðåñàöèè íà ÑÌ ÝÂÌ è ïåðñîíàëüíûõ ÝÂÌ íà áàçå ïðîöåññîðà i386 ìîæíî ñôîðìèðîâàòü âïîëíå îïðåäåëåííîå ïðåäñòàâëåíèå î âîçìîæíîñòÿõ ýòèõ ìàøèí. Íåñîìíåííî ÑÌ 1700 ÿâëÿåòñÿ áîëåå ìîùíîé ìàøèíîé, ðàññ÷èòàííîé íà ðåøåíèå äîñòàòî÷íî ñëîæíûõ ýêîíîìè÷åñêèõ è äðóãèõ çàäà÷. Èìåÿ áîëåå ñîâåðøåííûé íàáîð âîçìîæíûõ ñïîñîáîâ àäðåñàöèè ïîçâîëÿåò êà÷åñòâåííåå è êîìïàêòíåå çàïèñûâàòü çàäà÷è îðèåíòèðîâàííûå íà ðàáîòó ñ áîëüøèì êîëè÷åñòâîì ðàçëè÷íîé íôîðìàöèè, ïî ñðàâíåíèþ ñ âîçìîæíîé ðåàëèçàöèåé ïîäîáíûõ çàäà÷ íà ÏÝÂÌ.Ïðÿìàÿ èëè êîñâåííàÿ àäðåñàöèÿ "ïàìÿòü-ïàìÿòü" íåñîìíåííî èìååò îãðîìíûå ïðåèìóùåñòâà, è ðåçêî ñíèæàåò ðàçìåð êîäà è êîëè÷åñòâî äîïîëíèòåëüíûõ ðåñóðñîâ ( ðåãèñòðû, ëèøíèå òàêòû è ò.ä.), èñïîëüçóåìûõ ïðè ïîäîáíûõ ïåðåñûëêàõ. Îäíàêî, íåñìîòðÿ íà ýòî, ïåðåïðîãðàììèðîâàíèå ïîäîáíûõ çàäà÷ äëÿ ïðîöåññîðà 80386 âïîëíå ðåàëüíî è äàæå èìååò ñìûñë. Áëàãîäàðÿ ðàçâèòèþ ýëåìåíòíîé áàçû, íîâûì àðõèòåêòóðíûì ðåøåíèÿì, ïîâûøåíèþ ïðîèçâîäèòåëüíîñòè âíóòðåííèõ è âíåøíèõ çàïîìèíàþùèõ óñòðîéñòâ îáùàÿ ïðîèçâîäèòåëüíîñòü ñîâðåìåííûõ ÏÝÂÌ äîñòèãàåò, è ÷àñòî îáõîäèò ïðîèçâîäèòåëüíîñòü òàêèõ êëàññè÷åñêèõ âû÷èñëèòåëüíûõ ñèñòåì, êàê ÂÑ íà îñíîâå ÑÌ è ÅÑ ÝÂÌ. Ïîýòîìó, íåñìîòðÿ íà íåêîòîðóþ íåïðèñïîñîáëåííîñü ìàøèí ýòîãî êëàññà äëÿ ðåøåíèÿ ñëîæíûõ çàäà÷, ïîñëåäíåå âðåìÿ î÷åíü áîëüøîé ïðîöåíò ïîäîáíûõ âû÷èñëåíèé ïðèõîäèòñÿ íà ÏÝÂÌ. È êîíå÷íî íå ïîñëåäíþþ ðîëü çäåñü èãðàåò èõ îòíîñèòåëüíî íåáîëüøàÿ ñòîèìîñòü, ãëîáàëüíîå ðàñïðîñòðàíåíèå è îãðîìíîå êîëè÷åñòâî ïðèêëàäíûõ ïðîãðàìì, à ñëåäîâàòåëüíî è ïðîãðàììèñòîâ, ñïîñîáíûõ ïèñàòü ãðàìîòíîå ÏÎ äëÿ ðåøåíèÿ ýêîíîìè÷åñêèõ çàäà÷.