Показать сообщение отдельно

  #322  
Старый 23.09.2007, 00:09
Ni0x
Постоянный
Регистрация: 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;
}
 
Ответить с цитированием