Loop exter
Pop cx
Loop inter
Inc found
Cmp ax,elem
Inc si
Mov si,0
Code
Mas dw 0, 2, 4, 6, 8, 10, 12, 14,16, 18, 20, 22
Data
Пример программы
18 20 22
12 14 16
6 8 10
0 2 4
Вычислить адрес элемента во второй строке и первом столбце (i=2, j=1) массива слов mas.
Эффективный адрес элемента массива:
mas(2,1)=mas+2*3*2+1*2=mas+14
Вычисленный адрес указывает на число 14 (совпадает с адресом)
Программа ищет в массиве число 10
found db 0 ; счетчик успешных попыток
d=2
m=3 ;число столбцов в массиве
n=4 ;число строк в массиве
elem=10 ;элемент для поиска
…….
mov bx,0; начало с нулевой строки
mov si,0; нулевой столбец
mov cx,4;параметр внешнего цикла по строкам
exter: ;начало внешнего цикла
push cx ;сохраним в стеке счетчик внешнего цикла
mov cx,3 ; параметр внутреннего цикла по столбцам
inter: ;начало внутреннего цикла
mov ax,mas [bx] [si*2]
jne $+6
add bx,m*d
…
….