Питання з тегом '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) не оптимiзований і фактично викличе бібліотечну функцію 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
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
9
відповідей

Використання GCC для створення читається збірки?

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

Чому програми, написані на Асамблеї найчастіше?

Схоже, що основне думка полягає в тому, що програмування збірок займає більше часу і складніше програмувати, ніж мова більш високого рівня, такий як C. Тому здається, що рекомендується або припустити, що краще писати на мові більш ...

Чому введення непотрібних інструкцій 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