Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Ответ: найдите 10 различий :)

Отправлено smb 03 июля 2008 г. 16:57
В ответ на: В подавляющем большинстве ядер операция декремента выставляет флаги переноса/нуля, тем самым как бы параллельно выполняя еще и операцию сравнения с нулем. Поэтому второй и третий варианты будут оптимальнее вне зависимости от муд..рости компилятора отправлено MBedder 03 июля 2008 г. 16:43

Вот код:

int _tmain(int argc, _TCHAR* argv[])
{
unsigned int n;

// loop type 1
for (n=0; n<25; n++)
putc('1',stdout);

// loop type 2
for (n=25; n>0; n--)
putc('2',stdout);

// loop type 2
n=25;
do
{
putc('3',stdout);
}while( --n);


return 0;
}


Вот результат (VS2005):

; 7 : {

push esi

; 8 : unsigned int n;
; 9 :
; 10 : // loop type 1
; 11 : for (n=0; n<25; n++)

mov esi, 25
$LL9@wmain:

; 12 : putc('1',stdout);

call ___iob_func
add eax, 32
push eax
push 49
call _putc
add esp, 8
sub esi, 1
jne SHORT $LL9@wmain

; 13 :
; 14 : // loop type 2
; 15 : for (n=25; n>0; n--)

mov esi, 25
$LL6@wmain:

; 16 : putc('2',stdout);

call ___iob_func
add eax, 32
push eax
push 50
call _putc
add esp, 8
sub esi, 1
jne SHORT $LL6@wmain

; 17 :
; 18 : // loop type 2
; 19 : n=25;

mov esi, 25
$LL3@wmain:

; 20 : do
; 21 : {
; 22 : putc('3',stdout);

call ___iob_func
add eax, 32
push eax
push 51
call _putc
add esp, 8

; 23 : }while( --n);

sub esi, 1
jne SHORT $LL3@wmain

; 24 :
; 25 :
; 26 : return 0;

xor eax, eax
pop esi

; 27 : }

ret 0



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 34:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru