Помощь - Поиск - Пользователи - Календарь
Полная версия: Массив.
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Assembler
Янычар
Мне нужно сделать данную задачу как ассемблерную вставку в паскаль.Вот и сама задача: В массиве заменить каждый из элементов суммой соседей, кроме крайних. То есть например если есть такой массив 2,3,5,8,6, то после замены должно получиться: 2,7,11,11,6.Помогите пожалуйста а то ассемблер вобще не знаю совершенно.
xds
program ArrayAsm;

const
n = 10;

var
a: array[1..n] of Integer;
i: Integer;

begin
Randomize;
for i := 1 to n do
begin
a[i] := Random(20);
Write(a[i]:3);
end;
Writeln;

asm
cld
push ds
pop es
lea si,a
lea di,a+2
lodsw
mov dx,ax
mov cx,n-2
@@:
lodsw
xchg dx,ax
add ax,[si]
stosw
loop @@
end;

for i := 1 to n do
Write(a[i]:3);
Writeln;
end.
Янычар
Спасибо огромное!Но пожалуйста если не трудно можно написать что что здесь означает?!А то чего то я ничего не пойму)))
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.