Форум: "Система";
Текущий архив: 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