Ассемблерная вставка, двумерные массивы - Turbo Pascal
Формулировка задачи:
Подскажите, как обращаться к конкретному элементу двумерного массива? Нужна точная формула адреса и пример использования.
Решение задачи: «Ассемблерная вставка, двумерные массивы»
textual
Листинг программы
const n = 5; var a, b, c : array[1..n,1..n] of integer; i, j, k : integer; Begin {Инициализируем перемножаемые матрицы a и b} k:=0; for i:=1 to n do for j:=1 to n do begin inc(k); a[i,j]:=k; end; for i:=1 to n do for j:=1 to n do begin b[i,j]:=k; dec(k); end; asm xor si,si mov cx,n @1: xor bx,bx xor di,di push cx mov cx,n @2: push bx push cx push di push si xor bx,bx mov cx,n @3: mov ax,word ptr a[si] xor dx,dx imul word ptr b[di] add bx,ax add si,2 add di,2*n loop @3 mov ax,bx pop si pop di pop cx pop bx mov word ptr c[bx+si],ax {Очередной элемент результата} add bx,2 add di,2 loop @2 pop cx add si,2*n loop @1 end; End.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д