Вот что я сделал, но выдается ошибка Функция вызывается в таком файле Код C++
| Код | #include<iostream> using namespace std; extern "C" char* __stdcall sorting(char*,char*,short); int main() { setlocale(LC_ALL,".1251"); char*stroka=new char[255]; cout<<"Введите строку длиной не более 255 символов"<<endl; cin.getline(stroka,255); short int N=strlen(stroka); char*new_str=new char[N++]; cout<<sorting(stroka,new_str,N); return 0; }
|
Но при компиляции выдает ошибку Error 1 error PRJ0019: A tool returned an error code from "Assembling..." assembler_podrogramm
Код функции
| Код | .386 PUBLIC _sorting@12 .model flat .code _sorting@12 proc push ebp mov ebp, esp mov esi,[esp+8] mov edi,[esp+12] xor edx,edx ; edx - номер элемента новой строки, с которой работает программа beg: xor eax,eax ;ah- начало слова,al- конец xor ebx,ebx ; bh- начало минимального слова ; bl - его длина xor ecx,ecx ;ecx- номер элемента, с которым в данный момент работает программа mov bl,-1 mov al,-1 min_word : cmp cx,[esp+16] je ende cmp [esi][ecx],' ' je word_end cmp [esi][ecx],'\0' je word_end inc cx jmp min_word word_end: mov ah,al inc ah mov al,cl inc cx cmp ah,al je min_word sub al,ah cmp al,0 jng min_word cmp al,bl jg new_min_word add al,ah jmp min_word new_min_word: mov bl,al add al,ah mov bh,ah jmp min_word ende: cmp bh,bl push ebx mov bl,bh mov bh,0 mov ecx,ebx pop ebx delete_word: cmp bl,-1 je full_end cmp bl,0 je exit_point mov ax,[esi][ecx] mov [edi][edx],ax inc edx mov [esi][ecx],' ' inc ecx dec bl jmp delete_word exit_point: mov[edi][edx],' ' inc edx jmp beg full_end: mov[edi][edx],'\0' mov eax,edi mov esp,ebp pop ebp ret 12 _sorting@12 endp end
|
Как это исправить? Заранее благодарен |