Хелпикс

Главная

Контакты

Случайная статья





int strlengh(char *str)



int strlengh(char *str)

{

int lengh;

asm volatile(

               " xorl %%edi, %%edi\n"

               " abc: \n"

               " lodsb\n"                  // # читает байт в строке в регистр al и автоматически устанавливает следующую позицию

               " cmpb $0, %%al \n"            // # если байт равен 0, значит end of string

               " jz continue \n"

               " incl %%edi \n"              // # счетчик

               " jmp abc \n"               // # повторить...

               " continue: \n"

               " movl %%edi, %[res]\n"

           : [res]" =d" (lengh)

           : [str]" S" (str)

               );

               cout< < lengh;

               return lengh;

}



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.