Ассемблерная вставка в Паскале

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Ассемблерная вставка в Паскале

Re: Ассемблерная вставка в Паскале

Raze » 06 апр 2007, 13:20

Спасибо, что помог.

Re: Ассемблерная вставка в Паскале

somewhere » 06 апр 2007, 08:39

Код: Выделить всё

Uses crt;

var mtx : Array[1..3, 1..3] of Integer;
    summ: Integer;
    x,y : Integer;

Function GetRandom(i:Integer):Integer;
begin
GetRandom := Random(i);
end;

begin
ClrScr;
Randomize;
asm
mov di, offset mtx
mov cx, 9
  @Generate:
push cx
push 200
call GetRandom
sub ax, 100
mov [di], ax
add di, 2
pop cx
loop @Generate
end;
Writeln('Original matrix:');
For X:=1 to 3 do
  begin
  For Y:=1 to 3 do Write(mtx[x,y]:5);
  Writeln;
  end;
asm
mov summ, 0
mov si, offset mtx
mov cx, 9
  @Absolute:
mov ax, [si]
test ax, ax
jns @Positive
not ax
inc ax
mov [si], ax
    @Positive:
add summ, ax
add si, 2
loop @Absolute
end;
Writeln('Processed matrix:');
For X:=1 to 3 do
  begin
  For Y:=1 to 3 do Write(mtx[x,y]:5);
  Writeln;
  end;
Writeln('Summ = ', summ:6);
end.

Re: Ассемблерная вставка в Паскале

Raze » 05 апр 2007, 16:07

Массив заполняется произвольно, массив целых чисел, по модулю.

Re: Ассемблерная вставка в Паскале

somewhere » 05 апр 2007, 08:55

Допустим, я знаю, как реализовать.
&quot писал(а):Заполнение массива
Заполнять-то как? ручками, из файла, произволом?
&quot писал(а):элементов двумерного массива
Массива из чего? каков тип элемента?
&quot писал(а):преобразован в положительный
преобразован по какому правилу? по модулю, четная степень или как?

Ассемблерная вставка в Паскале

Raze » 04 апр 2007, 18:35

Кто знает как реализовать подсчёт суммы элементов двумерного массива 3х3 как ассемблерную вставку в Паскале? Если в массиве попадается отрицательный элемент он должен быть преобразован в положительный. Заполнение массива и подсчёт суммы его элементов должны быть реализованы как ассемблерная вставка.

Вернуться к началу