Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.18;
Скачать: CL | DM;

Вниз

NOP   Найти похожие ветки 

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

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


 
Anatoly Podgoretsky ©   (2003-07-04 19:14) [1]

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


 
default ©   (2003-07-04 19:18) [2]

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


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

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


 
Ihor Osov'yak ©   (2003-07-04 23:34) [4]

2 R4D][ (04.07.03 19:22)

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

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


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

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


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

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


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

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


 
AlexRush ©   (2003-07-05 10:11) [8]

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


 
R4D][   (2003-07-05 12:05) [9]

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


 
Anatoly Podgoretsky ©   (2003-07-05 12:31) [10]

Указатели.


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

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



Страницы: 1 вся ветка

Текущий архив: 2003.09.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
3-58569
AlexBon
2003-08-27 12:39
2003.09.18
IBQuery - как добавить поля


1-58725
titnn
2003-09-07 09:00
2003.09.18
а как бы это по красивее сделать ...


1-58761
Sniffer
2003-09-06 12:39
2003.09.18
Изминение Security Attributes файла


7-58938
R4D][
2003-07-06 16:15
2003.09.18
Хэндл и имя фаила.


1-58701
MakNik
2003-09-08 11:25
2003.09.18
StringGrid