我一直在尝试编写代码以按字母顺序对单词进行排序,但遇到了一些问题。这是我的主要 .cpp
#include <iostream>
using namespace std;
extern "C" int Sort (char [] [20], int, int);
void main ()
{
char Strings [10] [20]
= { "One",
"Two",
"Three",
"Four",
"Five",
"Six",
"Seven",
"Eight",
"Nine",
"Ten" };
int i;
cout << "Unsorted Strings are" << endl;
for (i = 0; i < 10; i++)
cout << '\t' << Strings [i] << endl;
Sort (Strings, 10, 20);
cout << "Sorted Strings are" << endl;
for (i = 0; i < 10; i++)
cout << '\t' << Strings [i] << endl;
}
到目前为止,这是我的代码。
.386
public _Sort
.model flat
.code
.data
_Sort proc
push ebp
mov ebp, esp
push esi
push edi
mov ecx, [ebp + 16]
add ecx, 3
sar ecx, 2
sal ecx, 2
sub esp, ecx
mov edx, esp
mov edi, [ebp + 8]
mov esi, edi
L1:
push ecx
mov esi, [ebp +8]
L2:
mov al, [esi]
cmp [esi + 20], al
jg L3
mov eax, [esi]
xchg eax, [esi +20]
mov [esi], eax
L3:
add esi, 20
loop L2
pop ecx
loop L1
L4:
pop edi
pop esi
pop ebp
ret
_Sort endp
end
我正在尝试按照书中的说明进行操作,但这与我必须编写的程序有些不同。有人愿意澄清我做错了什么吗?谢谢。