Àäðåñ ýëåìåíòà â íà÷àëå ñòðîêè èñïîëüçóåòñÿ äëÿ ôîðìèðîâàíèÿ àäðåñà î÷åðåäíîãî ýëåìåíòà äëÿ îáîèõ èíäåêñîâ, ò.å. ôàêòè÷åñêè òðåáóåòñÿ 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;