0
我必须编写一个程序集,它可以对多达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
C声明用于char的2维数组,您的汇编代码用于char *的1维数组。 – 2010-11-30 15:48:22
您的实际任务代码中是否有评论?如果没有评论的话,我会因为打开一个装配项目而遭到殴打。要理解你的代码而没有评论,我必须弄清楚你的系统如何将参数推入堆栈。此外,您的标签名称并不特别描述您要完成的内容。这些'风格'问题虽然不能直接解决您的问题,但可以帮助您理解自己的代码,并且更好地解决问题。 – 2010-11-30 18:18:59