Главная страница
    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.47 MB
Время: 0.009 c
14-58913
Е-Моё имя
2003-08-28 16:00
2003.09.18
злобные вирьмакеры


6-58810
Igpr
2003-07-17 09:31
2003.09.18
Закачка базы с Oracl`а ч/з TWebBrowser.


14-58893
sagchat
2003-08-29 12:09
2003.09.18
Скажите чем Win2k лучше Win98 (ваше мнение)


1-58617
Jacob
2003-09-04 21:52
2003.09.18
Может ли глючить TFileListBox?


14-58855
panov
2003-08-29 22:29
2003.09.18
Вопрос по настройке DNS и SMTP.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский