首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对程序集中的名称数组进行排序

对程序集中的名称数组进行排序
EN

Stack Overflow用户
提问于 2010-11-30 22:47:31
回答 1查看 1K关注 0票数 0

我必须在汇编中编写一个过程,对最多20个名称的数组进行排序,最多11个字符。我的程序接受3条记录,但在其他地方总是崩溃,我不能让它排序。我使用冒泡排序。

顺便说一句,我不能在C++中更改任何东西,因为这是一个赋值。

前3行来自C++代码。

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2010-12-01 01:58:08

我认为你应该将每个名字的每个字符(A)与所有其他名字的相应字符(B)进行比较,最后,如果B及其前面的所有字符都小于A和之前的字符,则调换这两个名称。现在这是我唯一的想法,但我不能把它翻译成代码,我还是应该考虑一下……

我已经尽力解释了,不管怎么说,如果弄得一团糟,我很抱歉..=)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4314972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档