![]() |
Помогите Исправить ошибку в программе
strcat - добавляет копию строки, указанной как src к
концу строки, указанной как dest, заменяя при этом последний знак строки dest первым знаком строки src. .intel_syntax noprefix .globl my_strcat .type my_strcat, @function my_strcat: push ecx push edx mov edx, [esp+12] find_end: mov al, BYTE PTR [edx] inc edx cmp al, 0 jne find_end prepare: mov ecx, edx mov edx, [esp+16] copy: mov al, BYTE PTR [edx] inc edx mov BYTE PTR [ecx-1], al inc ecx cmp al, 0 jne copy exit: pop edx pop ecx mov eax, [esp+12] ret при запуске пишет "ошибка сигментации" :( :confused: ребята, очень прошу, помогите!!!!!!!! |
ошибка сегментации, это очень часто переполнение буфера
|
Хм... Ну я так поняла, что я обращаюсь к памяти, куда нельзя. А где именно?
|
Я пробовала еще просто заменить al
на dl, тогда происходит зацикливание. Мне кажется что ошибка в этой строчке mov BYTE PTR [ecx-1], al я никак понять не могу как указать на предпоследний символ строки. |
| Время: 17:29 |