Вопросы с тегом 'assembly'

Вопросы программирования на языке программирования (asm). УБЕДИТЕСЬ ТАКЖЕ ТАГ с процессором и/или набором инструкций, которые вы используете, а также ассемблером. ПРЕДУПРЕЖДЕНИЕ. Для сборщиков .NET вместо этого используйте тег [.net-assembly]. Для Java ASM вместо этого используйте тег [java-bytecode-asm].
12
ответов

Почему GCC не оптимизирует a * a * a * a * a * a to (a * a * a) * (a * a * a)?

Я делаю некоторую численную оптимизацию в научном приложении. Я заметил, что GCC оптимизирует вызов pow(a,2), компилируя его в a*a, но вызов pow(a,6) не оптимизирован и фактически вызовет библиотечную функцию pow, что значительно замедляет производи...
задан 21 июня '11 в 21:49
13
ответов

Является <быстрее, чем <=?

Я читаю книгу, в которой автор говорит, что if( a < 901 ) быстрее, чем if( a <= 900 ). Не так, как в этом простом примере, но есть небольшие изменения в производительности сложного кода цикла. Я полагаю, что это должно что-то сделать с создан...
задан 27 авг. '12 в 5:10
8
ответов

Замена 32-битного счетчика циклов на 64-битные значения приводит к сумасшедшим отклонениям производительности

Я искал самый быстрый способ для больших массивов данных popcount. Я столкнулся с очень странным эффектом: изменение переменной цикла от unsigned до uint64_t привело к снижению производительности на 50% на моем ПК. Контрольный показатель #include...
задан 01 авг. '14 в 13:33
11
ответов

Почему этот код на С++ быстрее, чем моя рукописная сборка для тестирования гипотезы Collatz?

Я написал эти два решения для Project Euler Q14 в сборке и на С++. Они представляют собой одинаковый подход грубой силы для тестирования гипотезы Collatz. Сборочный раствор был собран с помощью nasm -felf64 p14.asm && gcc p14.o -o p14 C++ ...
задан 01 нояб. '16 в 9:12
14
ответов

Какова цель инструкции LEA?

Для меня это просто похоже на фанки MOV. Какова его цель и когда я должен ее использовать?
задан 01 нояб. '09 в 23:57
4
ответов

Как достичь теоретического максимума 4 FLOP за цикл?

Как теоретическая пиковая производительность четырех операций с плавающей запятой (двойная точность) за цикл будет достигнута на современном процессоре Intel x86-64? Насколько я понимаю, для большинства современных процессоров Intel требуется три ци...
задан 05 дек. '11 в 20:54
38
ответов

Когда происходит сборка быстрее, чем C?

Одна из заявленных причин знать ассемблер заключается в том, что иногда его можно использовать для написания кода, который будет более результативным, чем запись этого кода на языке более высокого уровня, в частности C. Тем не менее, я также слышал, ...
задан 23 февр. '09 в 16:03
6
ответов

Почему gcc генерирует 15-20% более быстрый код, если я оптимизирую размер вместо скорости?

Впервые я заметил в 2009 году, что gcc (по крайней мере, на моих проектах и ​​на моих машинах) имеет тенденцию генерировать значительно более быстрый код, если я оптимизирую вместо размер (-Os) вместо скорости ( -O2 или -O3), и с тех пор мне стало...
задан 19 окт. '13 в 23:36
14
ответов

Как получить вывод ассемблера из источника C/С++ в gcc?

Как это сделать? Если я хочу проанализировать, как что-то компилируется, как я могу получить испущенный ассемблерный код?
задан 26 сент. '08 в 3:10
4
ответов

Почему Java-переключатель на непрерывных ints работает быстрее с добавленными случаями?

Я работаю над некоторым Java-кодом, который нуждается в высокой оптимизации, поскольку он будет работать в горячих функциях, которые вызываются во многих точках моей основной логики программы. Часть этого кода включает в себя умножение переменных do...
задан 25 марта '13 в 20:28
32
ответов

Почему программы, написанные на Ассамблее чаще всего?

Похоже, что основное мнение состоит в том, что программирование сборок занимает больше времени и сложнее программировать, чем язык более высокого уровня, такой как C. Поэтому кажется, что рекомендуется или предположить, что лучше писать на языке боле...
задан 21 апр. '10 в 18:39
9
ответов

Использование GCC для создания читаемой сборки?

Мне было интересно, как использовать GCC в моем исходном файле C, чтобы сбрасывать мнемоническую версию машинного кода, чтобы я мог видеть, что мой код был скомпилирован. Вы можете сделать это с помощью Java, но мне не удалось найти способ с GCC. Я ...
задан 17 авг. '09 в 22:22
4
ответов

Почему введение бесполезных инструкций MOV ускоряет узкую петлю в сборке x86_64?

Фон: При оптимизации некоторого Pascal кода со встроенным языком ассемблера я заметил ненужную инструкцию MOV и удалил ее. К моему удивлению, удаление ненужной команды заставило мою программу замедлить работу. Я обнаружил, что добавление произ...
задан 27 июля '13 в 13:25
12
ответов

Является ли "переключатель" быстрее, чем "если"?

Является ли оператор switch более быстрым, чем оператор if? Я запустил код ниже в компиляторе Visual Studio 2010 x64 С++ с флагом /Ox: #include <stdlib.h> #include <stdio.h> #include <time.h> #define MAX_COUNT (1 << 29) s...
задан 24 июля '11 в 8:00
24
ответов

Защита исполняемого файла от обратной инженерии?

Я размышлял о том, как защитить свой код C/С++ от разборки и обратной инженерии. Обычно я никогда не потворствовал бы этому поведению себе в своем коде; однако текущий протокол, над которым я работал, никогда не должен быть проверен или понятен для б...
задан 26 июня '11 в 4:49