Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.01 c
1-58728
Modus
2003-09-07 09:46
2003.09.18
Оптимизировать по скорости


4-58978
Serhio
2003-07-18 16:14
2003.09.18
Консольные проги


3-58589
Bes
2003-08-28 05:02
2003.09.18
Проблема... Access


7-58928
Nick Denry
2003-07-06 20:09
2003.09.18
Как моей программе узнать, что пользователь открыл CD-Room в 9x?


14-58873
MsGuns
2003-08-28 16:36
2003.09.18
Значок





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский