Вопросы с тегом '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 в 18:49
15

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как запустить программу без операционной системы?

Как вы запускаете программу без операционной системы? Можете ли вы создавать программы сборки, которые компьютер может загружать и запускать при запуске, например, загружать компьютер с флэш-накопителя, и он запускает программу, которая находится на...
26 февр. '14 в 22:13
10

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

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