Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Почему JMP на границу параграфа работает (в разы?) быстрее JMP в середину параграфа памяти / 4 сообщений из 4, страница 1 из 1
13.11.2009, 16:58:10
    #36309844
quaid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему JMP на границу параграфа работает (в разы?) быстрее JMP в середину параграфа памяти
Теоретический вопрос в сабже. Столкнулся с подобным кодом

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
 procedure  _FillChar( var  Dest; count: Integer; Value: Char);
 asm                     
        CMP   EDX,  32 
        MOV   CH, CL        
        JL    @@Small              // Переход по условию на код, который "выровнен" 
        MOV   [EAX  ], CX  
        MOV   [EAX+ 2 ], CX
        MOV   [EAX+ 4 ], CX
        MOV   [EAX+ 6 ], CX
        SUB   EDX,  16 
        FLD   QWORD PTR [EAX]
        FST   QWORD PTR [EAX+EDX]  
        FST   QWORD PTR [EAX+EDX+ 8 ]
        MOV   ECX, EAX
         AND    ECX,  7    
        SUB   ECX,  8 
        SUB   EAX, ECX
        ADD   EDX, ECX
        ADD   EAX, EDX
        NEG   EDX
@@Loop:
        FST   QWORD PTR [EAX+EDX]   
        FST   QWORD PTR [EAX+EDX+ 8 ]
        ADD   EDX,  16 
        JL    @@Loop
        FFREE ST( 0 )
        FINCSTP
        RET
        NOP  // Зачем? 
        NOP  // Зачем? 
        NOP  // Зачем? 
@@Small:
        //.... 


Какой выигрыш в скорости дает подобный jump и с чем это связано?

Модератор: Тема перенесена из форума "Delphi".
...
Рейтинг: 0 / 0
15.11.2009, 16:06:04
    #36311326
eee-pc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему JMP на границу параграфа работает (в разы?) быстрее JMP в середину параграфа памяти
один код в кеше, другой нет
...
Рейтинг: 0 / 0
15.11.2009, 16:06:20
    #36311327
eee-pc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему JMP на границу параграфа работает (в разы?) быстрее JMP в середину параграфа памяти
да и вообще борланд это зло
...
Рейтинг: 0 / 0
15.11.2009, 16:44:34
    #36311359
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему JMP на границу параграфа работает (в разы?) быстрее JMP в середину параграфа памяти
Похоже на неявную работу директивы ALIGN или EVEN.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Почему JMP на границу параграфа работает (в разы?) быстрее JMP в середину параграфа памяти / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]