
23.09.2007, 00:09
|
|
Постоянный
Регистрация: 27.08.2006
Сообщений: 367
Провел на форуме: 2009677
Репутация:
472
|
|
Кез, прекратите понтоваться, пришло время нового поколения. У них есть пинч, а у вас знания по какимто С и онсемблеру, фуу.. не модно.
Я конечно тоже решил понтонуться и заделал аналог strlen() на ассемблере. Кстати, большинство функций crt переводятся на ассемблер за пару минут, при определенном знании конечно.
Код:
unsigned int _strlen(char *str)
{
unsigned int len = 0;
__asm
{
xor eax, eax
mov edi, str
or ecx, 0xffffffff
repne scasb
not ecx
dec ecx
mov len, ecx
}
return len;
}
И даже пример использования!
Код:
#include <stdio.h>
#include <stdlib.h>
unsigned int _strlen(char *str)
{
unsigned int len = 0;
__asm
{
xor eax, eax
mov edi, str
or ecx, 0xffffffff
repne scasb
not ecx
dec ecx
mov len, ecx
}
return len;
}
int main(int argc, char *argv[])
{
unsigned int ls = _strlen("WJWIdske83");
printf("%d\n", ls);
system("PAUSE");
return 0;
}
|
|
|