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