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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2010, 17:27   #31
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Теперь всё ясно.Спасибо
_-Re@l-_ вне форума Ответить с цитированием
Старый 12.09.2010, 19:34   #32
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
Лампочка

Цитата:
асмвский код всех быстрее
Эм? А бывает другой (ну кроме интерпретируемых)? Код на паскале всё равно преобразуется на ассемблер...
Вот другой вопрос правильно ли компилятор поймёт что именно мы хотим...
Как правило понимает и оптимизирует лучше чем вручную выдумывать...
Цитата:
Время, затраченное на вызов функции с ассемблерной вставкой
Хм... А разве она не просто скомпилируется как написано? В чём будет разница-то?
Цитата:
но инкремент это по сути всё-таки тоже сложение
Не совсем... По сути-то конечно идея та же, но процессор по-разному выполняет, и инкремент быстрее...


Мои познания асма не настолько тонки, но например:
"xor ax,ax" будет быстрее чем "mov ax,0"...
Далее - а зачем вообще делать "mov ax,0"/"xor ax,ax"? Почему не сразу "mov ax,z"? Зачем обнулять регистр, а потом складывать переменную с нулём?
Складывать будет быстрее через inc...

Такое лучше сразу на Wasm спрашивать...


А вообще вопрос звучал "Какой код выполнится быстрее?"... Почему бы просто не взять и не проверить?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 12.09.2010, 19:47   #33
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

удалите пост, плиииз...

Последний раз редактировалось Serge_Bliznykov; 12.09.2010 в 19:50.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.09.2010, 19:54   #34
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Цитата:
Сообщение от DomiNick Посмотреть сообщение
Не совсем... По сути-то конечно идея та же, но процессор по-разному выполняет, и инкремент быстрее...
a := a + b;
Код:
mov       ax,[00052]
add       ax,[00054]
mov       [00052],ax
Inc(a,b);
Код:
mov       ax,[00054]
add       [00052],ax
a := a + 1;
Код:
 mov       ax,[00052]
 inc       ax
 mov       [00052],ax
Inc(a);
Код:
inc       w,[00052]
ИТОГО: Inc имеет смысл использовать вместо обычного сложения...
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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