Почему может менятся сумма байт между метками.

Тема в разделе "LANGS.C", создана пользователем REx07, 20 июн 2010.

  1. REx07

    REx07 New Member

    Публикаций:
    0
    Регистрация:
    20 июн 2010
    Сообщения:
    5
    Есть такой код:
    Код (Text):
    1. #include <iostream>
    2. #include <TCHAR.H>
    3.  
    4. int checksum = 0;
    5.  
    6. int main(void)
    7. {
    8. Label1:
    9.  int a = 4328, b = 59444;
    10.  std::cin >> a >> b;
    11.  int c = abs(232 - abs((abs(b) - abs(a))));
    12.  switch (c)
    13.  {
    14.  case 0:
    15.   std::cout << _T("|232 - (||b|-|a||)| = ") << 0 << std::endl;
    16.   break;
    17.  case 1:
    18.   std::cout << _T("|232 - (||b|-|a||)| = ") << 1 << std::endl;
    19.   break;
    20.  case 2:
    21.   std::cout << _T("|232 - (||b|-|a||)| = ") << 2 << std::endl;
    22.   break;
    23.  case 3:
    24.   std::cout << _T("|232 - (||b|-|a||)| = ") << 3 << std::endl;
    25.   break;
    26.  default:
    27.   std::cout << _T("|232 - (||b|-|a||)| = ") << c << std::endl;
    28.  }
    29. Label2:
    30.  __asm {  
    31.   pushad
    32.   xor eax, eax
    33.   xor edx, edx
    34.   mov esi, Label1
    35.   mov ecx, Label2
    36.   sub ecx, esi  
    37.  next:
    38.   mov dl, BYTE PTR [esi]
    39.   add eax, edx
    40.   add esi,1
    41.   loop next
    42.  
    43.   mov checksum, eax
    44.   popad
    45.  }
    46.  
    47.  std::cout << checksum << std::endl;
    48.  //std::cout << l1 << std::endl;
    49.  //std::cout << l2 << std::endl;
    50.  
    51.  getchar();
    52.  getchar();
    53.  return 0;
    54. }
    Вопрос вот в чем, почему при каждом запуске (иногда через раз) меняется сумма байт между Label1 и Label2? Проблему локализовал до std::cout, если оставить между метками только его, то сумма будет меняться, хотя диззасемблится в нормальный код. Компилятор 2008ой студии, конфигурация релиз, оптимизация отключена.
     
  2. google

    google New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2007
    Сообщения:
    140
    REx07
    /dynamicbase:yes?
     
  3. REx07

    REx07 New Member

    Публикаций:
    0
    Регистрация:
    20 июн 2010
    Сообщения:
    5
    Хвала богам! Спасибо огромное мил человек, целый день провел в отладчике и все без толку.