Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2010, 14:05   #1
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
Вопрос Какой код выполнится быстрее?

Вот этот:
Код:
Function Add(Z,Q:Integer):Integer;
Var T:Integer;
Begin
      asm
      mov ax,0
      add ax,z
      add ax,q
      mov t,ax
      end;
      Add:=T;
End;
Или этот:
Код:
T:=Z+Q;

Последний раз редактировалось _-Re@l-_; 12.09.2010 в 14:09.
_-Re@l-_ вне форума Ответить с цитированием
Старый 12.09.2010, 14:08   #2
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

наверное этот
Код:
Function Add(Z,Q:Integer):Integer;
Var T:Integer;
Begin
      asm
      mov ax,0
      add ax,z
      add ax,q
      mov t,ax
      end;
      Plus:=T;
End;
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)
DRAgon™ вне форума Ответить с цитированием
Старый 12.09.2010, 14:08   #3
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Я , конечно, тоже так думаю, но почему?
Прошу прощения за ошибку в коде, исправил, теперь правильно.
_-Re@l-_ вне форума Ответить с цитированием
Старый 12.09.2010, 14:09   #4
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

второй вариант быстрее
_Engine_ вне форума Ответить с цитированием
Старый 12.09.2010, 14:11   #5
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

асмвский код всех быстрее
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)
DRAgon™ вне форума Ответить с цитированием
Старый 12.09.2010, 14:12   #6
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
асмвский код всех быстрее
Согласен, но...Так ли именно в этом случае?
_-Re@l-_ вне форума Ответить с цитированием
Старый 12.09.2010, 14:12   #7
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Вот еще вариант:
Код:
T:=Z;
Inc(T,Q)
Время, затраченное на вызов функции с ассемблерной вставкой может свести на нет все преимущества этой самой ассемблерной вставки...
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 12.09.2010 в 14:14.
Grag вне форума Ответить с цитированием
Старый 12.09.2010, 14:13   #8
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Не, это по сути аналогия
Код:
T:=Z+Q;
_-Re@l-_ вне форума Ответить с цитированием
Старый 12.09.2010, 14:16   #9
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

А ассемблерный код это разве по сути не аналогия??? Инкремент выполняется гораздо быстрее, чем просто сумма.
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 12.09.2010, 14:17   #10
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Ну да, но инкремент это по сути всё-таки тоже сложение ...
_-Re@l-_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой код клавиши?? RAVAL)) Общие вопросы Delphi 10 28.10.2015 12:24
Узнать, на какой странице выполняется код Winlook PHP 1 27.03.2010 04:44
какой будет код вычисления для D Витас Помощь студентам 1 22.03.2010 15:37
Имеется ли у вас какой ассемблерный код? rusell Помощь студентам 5 04.11.2009 16:11
Модернизировать код, сделать его быстрее Rusl92 Общие вопросы Delphi 5 03.11.2008 19:23