Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

NOP


R4D][ ©   (2003-07-04 19:01:00) 

У меня вопрос на 5 тонн :): А зачем компиляторы добавляют в код проги nop"ы. Они же вроде ничего не делают - дык зачем место занимать??? А то можно прогу написать, которая эти nop"ы удаляет и размер exeшника сокращается...
P.S. Сорри за вопрос не по теме форума, но больше спросить не где было...


R4D][   (2003-07-05 12:39:00) [1]

А...понял. Дошло! То есть если например будет jmp ADDRESS, то он прыгнет невесть куда, потому что ADDRESS будет другим.


Anatoly Podgoretsky   (2003-07-05 12:31:00) [2]

Указатели.


R4D][   (2003-07-05 12:05:00) [3]

//>>Ihor Osov"yak © (04.07.03 23:34)
// Если ты имеешь ввиду бинарный файл - все смещения полезут..
Ээээ...прошу прощения за, наверное, глупый вопрос, но смещения чего...


AlexRush   (2003-07-05 10:11:00) [4]

Когда нарушается выравнивание при доступе к данным, находящимя в кеше, теряются три такта на каждое неваровненое оращение на Pentium и 9-12 тактов на Pentium Pro/Pentium II.


Anatoly Podgoretsky   (2003-07-05 00:42:00) [5]

Пенальти из неверного выравнивания, лишняя загрузка в кеш, если попадает в разные выборки.


default   (2003-07-05 00:17:00) [6]

Anatoly Podgoretsky © (05.07.03 00:08)
кстати Вы можете объяснить ПОЧЕМУ выравнивание данных повышает скорость работы с этими данными?
в литературе пишут что это влияет на скорость, но почему - не пишут


Anatoly Podgoretsky   (2003-07-05 00:08:00) [7]

R4D][ (04.07.03 19:22)
Если не обращать внимание, что программа прекратит работать, то может быть и хуже. Пентиум, особенно четвертый, хитрый процессор, иногда добавление лишних комманд ускоряет, из выравнивания перехода на границу 8/16 байт, попадания на границу кеша и т.д.


Ihor Osov'yak   (2003-07-04 23:34:00) [8]

2 R4D][ (04.07.03 19:22)

Не делай этого. Если ты имеешь ввиду бинарный файл - все смещения полезут..

Если имеешь ввиду исходник на ассемблере, которій будет компилироваться - на здоровье.. Если конечно нет ньюансов со временной задержкой.


R4D][   (2003-07-04 19:22:00) [9]

Хм... То есть если я поудаляю nop"ы из фаила будет только хуже.
Спасибо.


default   (2003-07-04 19:18:00) [10]

Вот из книги по асму В. Юрова:
"команда nop, занимая один байт, может использоваться для резервирования памяти в сегменте кода или организации програмной задержки. В качестве иллюстрации можно обратиться к примеру, приведённому в описании команды hlt. В этом примере команду nop можно испоьзовать вместо jmp $+2. Назначение jmp $+2 в этом фрагменте - задержка для синхронизации работы микропроцссора и аппаратуры компьютера."


Anatoly Podgoretsky   (2003-07-04 19:14:00) [11]

Иногда для оптимизации программ, чаще для преобразования длинных переходов в короткие (таже оптимизация), иногда для пауз (это на старых процессорах в некоторых программах). Второй вариант наиболее частый.


Наверх

Титульная страница Поиск, карта сайта Написать письмо