Вопросы с тегом '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
14 отв.

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

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

Замена 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
4 отв.

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

Как достичь теоретической пиковой производительности 4 операций с плавающей запятой (двойной точности) за такт на современном процессоре Intel x86-64? Насколько я понимаю, это займет три цикла для SSE add и пять циклов для mul, чтобы закончить на б...
05 дек. '11 в 20:54
14 отв.

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

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

Когда происходит сборка быстрее, чем 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
9 отв.

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

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

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

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

Что такое retpoline и как он работает?

Чтобы смягчить раскрытие памяти ядра или кросс-процесса (Spectre), ядро ​​Linux 1 будет скомпилировано с новой опцией, -mindirect-branch=thunk-extern, введенной в gcc для выполнения косвенных вызовов с помощью так называемого retpoline. Это, кажет...
04 янв. '18 в 8:52
10 отв.

Как выглядит многоядерный язык ассемблера?

Когда-нибудь, чтобы написать ассемблер x86, например, у вас были бы инструкции, указывающие: "Загрузите регистр EDX со значением 5", "Increment EDX" и т.д. С современными процессорами, имеющими 4 ядра (или даже больше), на уровне машинного кода это ...
11 июня '09 в 16:16
4 отв.

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

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