Сортировка массива имен в сборке - PullRequest
0 голосов
/ 30 ноября 2010

Я должен написать процедуру на ассемблере, которая сортирует массив до 20 имен, до 11 символов.Мои программы принимают 3 записи, но продолжают рушиться во всем остальном, и я не могу их отсортировать.Я использую пузырьковую сортировку.
Кстати, я не могу ничего изменить в C ++, поскольку это задание.

Эти первые 3 строки взяты из кода C ++.

extern "C" void Sort (char [] [11], char [], double [], long);

char Names [20] [11];

Sort (Names, LetterGrades, Averages, NumStudents - 1);

_Sort proc

      mov ecx, [esp +16]
      dec ecx

L1:   push ecx
    mov esi, [esp + 4]

L2:   mov eax, [esi]
      cmp [esi + 11], eax
    jg L3
      xchg eax,[esi + 11]
      mov [esi],eax

L3:   add esi,11
      loop L2

      pop ecx
      loop L1

L4: ret

_Sort endp

1 Ответ

0 голосов
/ 30 ноября 2010

Я думаю, что вы должны сравнить каждый символ (A) каждого имени с соответствующим символом (B) всех других имен, а затем, в конце концов, поменять местами два имени, если B и все предшествующие ему символы меньше, чем A, иперсонажи раньше.Сейчас это моя единственная идея, но я не могу перевести ее в код, я должен подумать об этом еще некоторое время ...

Я пытался объяснить это как можно лучше, в любом случае, извините, еслиэто беспорядок .. =)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...