Вопросы с тегом «assembly»

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

12
Почему GCC не оптимизирует a * a * a * a * a * a до (a * a * a) * (a * a * a)?
Я делаю некоторую числовую оптимизацию для научного приложения. Одна вещь, которую я заметил, заключается в том, что GCC оптимизирует вызов pow(a,2), компилируя его a*a, но вызов pow(a,6)не оптимизируется и фактически вызовет библиотечную функцию pow, что значительно снижает производительность. (В отличие от этого , исполняемый файл компилятора Intel C ++icc исключает …

14
<Быстрее чем <=?
Является ли if( a &lt; 901 )быстрееif( a &lt;= 900 ) . Не совсем так, как в этом простом примере, но есть небольшие изменения производительности сложного кода цикла. Я полагаю, это связано с созданным машинным кодом на случай, если это правда.

10
Замена 32-разрядного счетчика циклов на 64-разрядный вводит сумасшедшие отклонения производительности с _mm_popcnt_u64 на процессорах Intel
Я искал самый быстрый способ для popcountбольших массивов данных. Я обнаружил очень странное действие: Изменение переменного цикла из unsignedк uint64_tвысказанному падению производительности на 50% по сравнению с ПК. Бенчмарк #include &lt;iostream&gt; #include &lt;chrono&gt; #include &lt;x86intrin.h&gt; int main(int argc, char* argv[]) { using namespace std; if (argc != 2) { cerr …

11
Код C ++ для проверки гипотезы Коллатца быстрее, чем рукописная сборка - почему?
Я написал эти два решения для Project Euler Q14 , в сборке и на C ++. Это один и тот же метод грубой силы для проверки гипотезы Коллатца . Решение для сборки было собрано с nasm -felf64 p14.asm &amp;&amp; gcc p14.o -o p14 C ++ был скомпилирован с g++ p14.cpp …


4
Как мне достичь теоретического максимума 4 FLOP за цикл?
Как достичь теоретической пиковой производительности 4 операций с плавающей запятой (двойной точности) за такт на современном процессоре Intel x86-64? Насколько я понимаю, для большинства современных процессоров Intel требуется три цикла для SSE add и пять циклов для a mul(см., Например , «Таблицы инструкций» Агнера Фога ). Благодаря конвейерной обработке можно …

30
Когда сборка происходит быстрее, чем C?
Одна из заявленных причин для знания ассемблера заключается в том, что иногда его можно использовать для написания кода, который будет более производительным, чем написание этого кода на языке более высокого уровня, в частности C. Тем не менее, я также слышал, как много раз говорилось, что, хотя это не совсем ложно, …
476 c  performance  assembly 


4
Почему Java переключается на непрерывные целочисленные объекты, кажется, работает быстрее с добавленными случаями?
Я работаю над некоторым Java-кодом, который должен быть сильно оптимизирован, так как он будет работать в горячих функциях, которые вызываются во многих точках моей основной логики программы. Часть этого кода включает в себя умножение doubleпеременных 10на произвольные неотрицательные int exponents. Один быстрый способ (изменить: но не самый быстрый, см. Обновление …

10
Использование GCC для создания читаемой сборки?
Мне было интересно, как использовать GCC в исходном файле C для вывода мнемонической версии машинного кода, чтобы я мог видеть, во что компилируется мой код. Вы можете сделать это с Java, но я не смог найти способ с GCC. Я пытаюсь переписать метод C на ассемблере и посмотреть, как это …
256 c  gcc  assembly 

3
Что такое ретполин и как он работает?
Для предотвращения раскрытия памяти в ядре или в межпроцессном режиме ( атака Spectre ) ядро Linux 1 будет скомпилировано с новой опцией , -mindirect-branch=thunk-externвведенной gccдля выполнения косвенных вызовов через так называемый retpoline . Похоже, что это новый изобретенный термин, поскольку поиск в Google обнаруживает только очень недавнее использование (как правило, …

10
Как выглядит многоядерный язык ассемблера?
Давным-давно, например, для написания ассемблера x86, вы должны будете получить инструкции о том, что «загрузить регистр EDX со значением 5», «увеличить регистр EDX» и т. Д. С современными процессорами, которые имеют 4 ядра (или даже больше), на уровне машинного кода это просто выглядит так, как будто есть 4 отдельных процессора …
243 assembly  x86  cpu  multicore  smp 

12
Является ли «переключатель» быстрее, чем «если»?
Является ли switchутверждение на самом деле быстрее, чем ifутверждение? Я запустил код ниже на x64 C ++ компиляторе Visual Studio 2010 с /Oxфлагом: #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; #include &lt;time.h&gt; #define MAX_COUNT (1 &lt;&lt; 29) size_t counter = 0; size_t testSwitch() { clock_t start = clock(); size_t i; for (i = …

3
Как запустить программу без операционной системы?
Как вы запускаете программу самостоятельно без операционной системы? Можете ли вы создавать программы сборки, которые компьютер может загружать и запускать при запуске, например, загружать компьютер с флэш-накопителя, и он запускает программу, которая находится на процессоре?

16
Можно ли «декомпилировать» Windows .exe? Или хотя бы посмотреть сборку?
Мой друг скачал вредоносное ПО с Facebook, и мне любопытно посмотреть, что он делает, не заражая себя. Я знаю, что вы не можете декомпилировать .exe, но я могу хотя бы просмотреть его в Assembly или прикрепить отладчик? Изменить, чтобы сказать, что это не исполняемый файл .NET, нет заголовка CLI.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.