Assembler_dvumer_massive
Добавлено: 15 мар 2010, 10:31
Каким образом произвести перестановку столбцов в двумерном массиве (после их предварительной обработки, в частности - после нахождения сумм этих столбцов).
Суммы двух столбцов я нашел, отдельные их элементы переставить смогу, а как полностью переставить столбцы, сам
принцип?
program sort;
uses crt;
const n=4;
var
A:array [1..n,1..n]of integer;
p,k,i,j:integer;
begin
clrscr; randomize;
for i:=1 to n do begin
for j:=1 to n do
begin a[i,j]:=random(10); write(a[i,j]:3); end;
writeln;
end;
asm
lea bx,a
mov cx,n
mov si,2*n
mov p,0
@1: mov ax,[bx]
add p,ax
add bx,si
loop @1
lea bx,a
mov cx,n
mov si,2*n
mov k,0
@2: mov ax,[bx+2]
add k,ax
add bx,si
loop @2
mov dx,k
...............
Суммы двух столбцов я нашел, отдельные их элементы переставить смогу, а как полностью переставить столбцы, сам
принцип?
program sort;
uses crt;
const n=4;
var
A:array [1..n,1..n]of integer;
p,k,i,j:integer;
begin
clrscr; randomize;
for i:=1 to n do begin
for j:=1 to n do
begin a[i,j]:=random(10); write(a[i,j]:3); end;
writeln;
end;
asm
lea bx,a
mov cx,n
mov si,2*n
mov p,0
@1: mov ax,[bx]
add p,ax
add bx,si
loop @1
lea bx,a
mov cx,n
mov si,2*n
mov k,0
@2: mov ax,[bx+2]
add k,ax
add bx,si
loop @2
mov dx,k
...............