Главная страница
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.014 c
1-58669
Support1
2003-09-04 23:50
2003.09.18
Сборная солянка


1-58689
Dysan
2003-09-04 15:08
2003.09.18
subsrtring ???


7-58940
edi
2003-07-04 15:35
2003.09.18
надо на винчестере отметить программно


1-58729
Chris
2003-09-07 19:13
2003.09.18
Помогите нарисовать линию


7-58922
maxon
2003-07-08 16:57
2003.09.18
запуск от другого имени