Tranvick

Untitled

Jun 25th, 2013
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.31 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6.         char s[100];
  7.         cin.getline(s, 100);
  8.         _asm {
  9.                 lea edi, s                 
  10.                 mov al,' '
  11.                 repne scasb
  12.  
  13.                 push edi
  14.                 repe scasb
  15.                 dec edi
  16.                 mov esi, edi
  17.                 pop edi
  18.                                            
  19.                 push esi                    // сохраняем esi(адрес начала второго слова) в стек
  20.                 xor ecx, ecx                // обнуялем ecx
  21. _loop3:                                     // начало третьего цикла
  22.                 inc ecx                     // увеличиваем ecx
  23.                 cmp byte ptr [esi], 0       // сравниваем значение символа по адресу [esi] c нулем
  24.                 je _end_loop3               // если равны, то выходим из цикла
  25.                 inc esi                     // увеличиваем esi на один
  26.                 jmp _loop3                  // переходим к началу цикла
  27. _end_loop3:                                
  28.                 pop esi                     // достаем esi из стека
  29.                 cld                         // нужная херня для следующей операции (обнуляет флаг df)
  30.                 repne movsb                 // копирует ecx символов начиная с esi в edi
  31.         }
  32.         cout << s << endl;
  33.         return 0;
  34. }
Advertisement
Add Comment
Please, Sign In to add comment