Сколько раз в массиве повторяется максимальный элемент - Assembler

Формулировка задачи:

Здравствуйте, не могли бы помочь с программой, не идет и все..
Program abczdarova
Uses crt;
Const N=10
Var A:array[1..N] of integer;
i:1..N;
Begin
Randomize;
For i:1 to N do
Begin 
A[i]:=random(10);
Writeln(A[i]:4);
Write('Massiv A:');
Write(A[i]);
End;
Asm
LEA SI, A
Mov AX, [SI]
Mov DX, 1
Mov CX, N
Mov BX, 0
@1: CMP AX, [SI+DX]
JLE @2
Mov AX, [SI+DX]
Mov BX, 0
Inc DX
Loop @1
@2: inc DX
Inc BX
CMP AX, [SI+BX]
JLE @2
Mov AX, [SI+DX]
Mov BX, 0
JMP @1
End;
For i:=1 to N do
Writeln('макс элемент' AX 'встречается ' BX 'раз');
Readln;
end.
Добавлено через 11 минут а как исправить?

Код к задаче: «Сколько раз в массиве повторяется максимальный элемент - Assembler»

textual
program abczdarova;
 
uses
  crt;
 
const
  N = 10;
var
  A: array[1..N] of integer;
  i: 1..N;
  Count, Max: integer;
begin
  Randomize;
  for i := 1 to N do
  begin
    A[i] := random(10);
    Writeln(A[i]: 4);
    Write('Massiv A:');
    Write(A[i]);
  end;
  writeln;
  asm
    LEA SI, A
    MOV AX, [SI]
    MOV DX, 1
    MOV CX, N
    DEC CX
    ADD SI, 2
    @1:
    CMP AX, [SI]
    JNE @2
    INC DX
    JMP @3
    @2:
    JG @3
    MOV AX, [SI]
    MOV DX, 1
 
    @3:
 
    ADD SI, 2
    LOOP @1
 
    MOV Count,DX
    MOV Max, AX
  end;
  Writeln('макс элемент ', Max, ' встречается ', Count, ' раз');
  Readln;
end.

10   голосов, оценка 4.000 из 5


СОХРАНИТЬ ССЫЛКУ