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.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20