![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]
Иногда для оптимизации программ, чаще для преобразования длинных переходов в короткие (таже оптимизация), иногда для пауз (это на старых процессорах в некоторых программах). Второй вариант наиболее частый.