Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Помогите Исправить ошибку в программе |

20.12.2009, 21:45
|
|
Новичок
Регистрация: 20.12.2009
Сообщений: 3
Провел на форуме: 11880
Репутация:
0
|
|
Помогите Исправить ошибку в программе
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
при запуске пишет "ошибка сигментации"
ребята, очень прошу, помогите!!!!!!!!
|
|
|

20.12.2009, 21:55
|
|
Постоянный
Регистрация: 18.11.2009
Сообщений: 709
Провел на форуме: 1410429
Репутация:
214
|
|
ошибка сегментации, это очень часто переполнение буфера
|
|
|

20.12.2009, 22:15
|
|
Новичок
Регистрация: 20.12.2009
Сообщений: 3
Провел на форуме: 11880
Репутация:
0
|
|
Хм... Ну я так поняла, что я обращаюсь к памяти, куда нельзя. А где именно?
|
|
|

21.12.2009, 20:29
|
|
Новичок
Регистрация: 20.12.2009
Сообщений: 3
Провел на форуме: 11880
Репутация:
0
|
|
Я пробовала еще просто заменить al
на dl, тогда происходит зацикливание.
Мне кажется что ошибка в этой строчке mov BYTE PTR [ecx-1], al
я никак понять не могу как указать на предпоследний символ строки.
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|