Поиск:

Ответ в темуСоздание новой темы Создание опроса
> максимально быстро сложить с 4, максимально быстро сложить с четверкой 
:(
    Опции темы
Гость_Гость
Дата 29.10.2005, 17:53 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Есть команда add ESI, 4.
Вяполняется на удивление медленно. Есть ли другой способ максмимально быстро сложить регистр с четверкой (именно с четверкой).
Это нужно для того, чтобы сместить указатель целочисленного массива.

Вообще где почитать о хитростях подобного рода, например можно ли ускорить команды типа
inc EDI и т.п.
  Вверх
Гость_Гость
Дата 29.10.2005, 22:15 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Попробовал по-разному: использовать регистр EDI, складывать в другом регистре, потом пересылать и др.
Результат: если не складывать (увеличивать адрес, по которому потом идет извлечение)
то быстро, как только адрес меняется, то медленно.
Т.е. похоже дело не в быстроте операции, а в КЭШе процессора!
Как только данные меняются (увеличивается адрес, неважно каким способом), работа замедляется.
Есть ли литература, как подстраиваться под КЭШ процессора?
  Вверх
oleg1973
Дата 29.10.2005, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 7
Всего: 34



Цитата
ADD -- Integer Addition


ADD -- Integer Addition

Opcode    Instruction        Clocks    Description

04 ib    ADD AL,imm8          2        Add immediate byte to AL
05 iw    ADD AX,imm16        2        Add immediate word to AX
05 id    ADD EAX,imm32        2        Add immediate dword to EAX
80 /0 ib  ADD r/m8,imm8        2/7      Add immediate byte to r/m byte
81 /0 iw  ADD r/m16,imm16      2/7      Add immediate word to r/m word
81 /0 id  ADD r/m32,imm32      2/7      Add immediate dword to r/m dword
83 /0 ib  ADD r/m16,imm8      2/7      Add sign-extended immediate byte
                                        to r/m word
83 /0 ib  ADD r/m32,imm8      2/7      Add sign-extended immediate byte
                                        to r/m dword
00 /r    ADD r/m8,r8          2/7      Add byte register to r/m byte
01 /r    ADD r/m16,r16        2/7      Add word register to r/m word
01 /r    ADD r/m32,r32        2/7      Add dword register to r/m dword
02 /r    ADD r8,r/m8          2/6      Add r/m byte to byte register
03 /r    ADD r16,r/m16        2/6      Add r/m word to word register
03 /r    ADD r32,r/m32        2/6      Add r/m dword to dword register



тоесть при сложении с НЕ регистором получаем 6-7тактов

Цитата

AC      LODS m8      5        Load byte [(E)SI] into AL
AD      LODS m16      5        Load word [(E)SI] into AX
AD      LODS m32      5        Load dword [(E)SI] into EAX
AC      LODSB        5        Load byte DS:[(E)SI] into AL
AD      LODSW        5        Load word DS:[(E)SI] into AX
AD      LODSD        5        Load dword DS:[(E)SI] into EAX

в даннаом варианте если еах меня не волнует получем 5 тактов


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
rsm
Дата 30.10.2005, 07:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: 3
Всего: 62



Цитата
Вообще где почитать о хитростях подобного рода

Здесь можно почитать
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0587 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.