Ïðîãðàììèðîâàíèå íà Àññåìáëåðå


         

Ìåòîä ñâÿçàííûõ èíäåêñîâ


Àäðåñ ýëåìåíòà â íà÷àëå ñòðîêè èñïîëüçóåòñÿ äëÿ ôîðìèðîâàíèÿ àäðåñà î÷åðåäíîãî ýëåìåíòà äëÿ îáîèõ èíäåêñîâ, ò.å. ôàêòè÷åñêè òðåáóåòñÿ 2 ýêçåìïëÿðà ýòîãî àäðåñà. Ò.ê. ôàêòè÷åñêè èñïîëüçóåòñÿ îäíî è òîæå çíà÷åíèå äëÿ ðàáîòû ñ êàæäûì èíäåêñîì ìåòîä íàçûâàåòñÿ ìåòîäîì ñâÿçàííûõ èíäåêñîâ. Äëÿ ïîëó÷åíèÿ 2-õ ýêçåìïëÿðîâ èñïîëüçóåòñÿ ñòåê. Ôîðìèðóåòñÿ íåîáõîäèìîå çíà÷åíèå, îäèí ýêçåìïëÿð êîòîðîãî çàïèñûâàåòñÿ â ñòåê, âòîðîé îñòàåòñÿ â ðåãèñòðå äëÿ ðàáîòû ñî âòîðûì èíäåêñîì. Ïðè íåîáõîäèìîñòè ðàáîòû ñ ïåðâûì èíäåêñîì èçâëåêàåòñÿ çíà÷åíèå èç ñòåêà.

Ñòðóêòóðà ïðîãðàììû äëÿ ìåòîäà ñâÿçíûõ èíäåêñîâ:

for (i=0; i<.. i++){                             mov     ecx, ...

mov     ebx, Ñìåùåíèå ÏÎÝ[11]

            ...

for (j=0; j<... ; j++){              fori:

                        ...                                 push     ecx

                                                            push     ebx

                                                            mov     ecx,...

                                                            forj:

                                                            [Èìÿ ìàññèâà + ebx]

}                                               add      ebx, [Hj]

                                                            loop     forj

}                                                           pop      ebx

                                                            add      ebx, Hi

                                                            pop      ecx

                                                            loop     fori

Ïðèìåð 1. Ñîñòàâèòü ïðîãðàììó äëÿ íàõîæäåíèÿ ñóìì ñòðîê ìàòðèöû ñ íå÷åòíûìè íîìåðàìè

for (k=i=0; i<M; i+=2, k++){

   r=0;

   for (j=0; j<N; j++)

      r+=matr[i][j]

   s[k]=r;

}

mov     esi, [N]

shl        esi, 3; Øàã ïî i

;for (k=0. i=1; i<M; i+=2, k++){

sub       eax, eax; k

mov     ecx, [M]

shr       ecx, 1

mov     ebx, [N]

shl        ebx, 2; i

fori:

;r=0;



Ñîäåðæàíèå  Íàçàä  Âïåðåä