
14.12.2009, 21:09
|
|
Участник форума
Регистрация: 19.05.2007
Сообщений: 281
С нами:
9989619
Репутация:
106
|
|
my_strcat:
push ecx пихаем еcx в стек
push edx пихаем edx в стек
mov edx, [esp+12] присваиваем edx значение верхушки стека + 12(эт первая строка)
find_end:
mov al, BYTE PTR [edx] один байт по адресу edx пихаем в al
inc edx сдвигаем адрес на 1
cmp al, 0 проверяем ни конец ли строки часом...
inc find_end тут какая то хрень по идее должен быть джамп если не конец
prepare:
mov ecx, edx адрес конца строки пихаем в еcx
mov edx, [esp+16] присваиваем edx верхушка стека + 16 (эт я так понял вторая строка)
copy:
mov al, BYTE PTR [edx] берем 1 байт суем в al
inc edx увеличиваем адресс
mov BYTE PTR [ecx-1], al пихаем в конец 1 строки этот байт
inc ecx сдвигаем адресс 1 строки
cmp al, 0 проверяем не конец ли 2 строки
jne copy
exit:
pop edx восстанавливаем регистр
pop ecx восстанавливаем регистр
mov eax, [esp+12] пихаем адресс результата в eax
Ты бы лучше книжку почитал какую и сам разобрался тут ничего сверх сложного нету.
|
|
|