0
ответов

Почему std :: fill (0) медленнее, чем std :: fill (1)?

Я наблюдал в системе, что std :: fill на большом std :: vector < int > был значительно и постоянно медленнее при установке постоянного значения 0 по сравнению с постоянным значением 1 или динамическим значением: ...
вопрос задан: 10 July 2017 18:22
0
ответов

Как работает реализация GCC по модулю (%) и почему он не использует инструкцию div?

Я пытался выяснить, как рассчитать модуль 10 в сборке, поэтому я скомпилировал следующий код c в gcc, чтобы увидеть, что он придумал. без знака int i = 999; без знака int j = i% 10; К моему удивлению, я получил ...
вопрос задан: 27 May 2017 12:09
0
ответов

Как сгенерировать ассемблерный код с помощью clang в синтаксисе Intel?

Как показывает этот вопрос, с g++ я могу выполнить g++ -S -masm=intel test.cpp. Кроме того, с clang я могу выполнить clang++ -S test.cpp, но -masm=intel не поддерживается clang (аргумент предупреждения не используется во время ...
вопрос задан: 23 May 2017 12:34
0
ответов

Язык ассемблера — стековая машина

Я изучаю язык ассемблера в свободное время, чтобы стать лучшим разработчиком. Я понимаю разницу между машинами на основе стека и машинами на основе регистров на концептуальном уровне, но я...
вопрос задан: 23 May 2017 12:32
0
ответов

Добавление двух чисел

Я пытаюсь познакомиться со сборкой x86 с помощью встроенного ассемблера GCC. Я пытаюсь сложить два числа (a и b) и сохранить результат в c. У меня четыре немного разных попытки, три из ...
вопрос задан: 23 May 2017 12:27
0
ответов

Разница в производительности между MSVC и GCC для высокооптимизированного кода матричного умножения

Я вижу большую разницу в производительности между кодом, скомпилированным в MSVC (в Windows) и GCC (в Linux) для системы Ivy Bridge. Код делает плотное матричное умножение. Я получаю 70% ...
вопрос задан: 23 May 2017 12:24
0
ответов

Избыточная инструкция в скомпилированном коде [дубликат]

Возможный дубликат: В чем смысл LEA EAX, [EAX]? Во время разборки я заметил следующий код: test.cpp: #include int main (int argc, char * argv [...
вопрос задан: 23 May 2017 12:24
0
ответов

Что делает последовательность инструкций сборки x86 «rep stos»?

Недавно я наткнулся на следующую последовательность инструкций сборки: rep stos dword ptr [edi]
вопрос задан: 23 May 2017 12:23
0
ответов

Развертывание цикла для достижения максимальной пропускной способности с Ivy Bridge и Haswell

Я рассчитываю восемь точечных продуктов одновременно с AVX. В моем текущем коде я делаю что-то вроде этого (до развертывания): Ivy-Bridge / Sandy-Bridge __m256 areg0 = _mm256_set1_ps (a [m]); для (int i = 0; i
вопрос задан: 23 May 2017 12:17
0
ответов

Вывод целых чисел на ассемблере в Linux

Это нужно делать на чистом ассемблере (т.е. без библиотек или вызовов C). Я понимаю суть проблемы: нужно разделить целое число на 10, преобразовать однозначный остаток в ASCII, ...
вопрос задан: 23 May 2017 12:14
0
ответов

Самый быстрый встроенный -сборочный спинлок

Я пишу многопоточное приложение на С++, где производительность имеет решающее значение. Мне нужно использовать много блокировок при копировании небольших структур между потоками, для этого я решил использовать спин-блокировки....
вопрос задан: 23 May 2017 12:10
0
ответов

چگونه می توان بلافاصله 128 بیتی را به رجیسترهای XMM منتقل کرد

در حال حاضر وجود دارد یک س onال در این مورد وجود دارد ، اما به دلیل "مبهم" بسته شد بنابراین من یک سوال جدید را باز می کنم - من جواب آن را پیدا کردم ، شاید به دیگران نیز کمک کند. سوال این است: چگونه توالی دنباله ای را می نویسید ...
вопрос задан: 23 May 2017 12:10
0
ответов

Является ли регистр EBP (указателем базового кадра )только для отладки в x86? [дубликат]

Изучение ассемблера x86 и указателя фрейма немного поразило меня. Из этого вопроса SO я узнал, что EBP делает жизнь отличной для отладки. Это здорово, но мне было любопытно: «Что еще такое EBP…
вопрос задан: 23 May 2017 12:09
0
ответов

Установить память как некэшируемую с помощью таблицы PAT x86

Я хочу установить диапазон памяти как некэшируемый (Linux, x86- 86) изнутри процесса пользовательского пространства. Этот вопрос подходит близко, но упоминает только регистры MTRR, которые работают с физической памятью. Я хочу ...
вопрос задан: 23 May 2017 12:03
0
ответов

Получить адрес текущей инструкции для x86 [дубликат]

Я использую Linux с x86 (если быть точным, 64-битный). Есть ли способ узнать адрес текущей инструкции. На самом деле я хочу написать свои собственные упрощенные версии setjmp / longjmp. Здесь, Р .. ...
вопрос задан: 23 May 2017 12:03
0
ответов

PHP x86 Как получить размер файла размером> 2 ГБ без внешней программы?

Мне нужно получить размер файла размером более 2 ГБ. (тестирование на файле размером 4,6 Гб). Есть ли способ сделать это без внешней программы? Текущий статус: Ошибка файла (), stat () и fseek () ...
вопрос задан: 23 May 2017 11:54
0
ответов

C# How do you get the operating system architecture (x86 or x64)? [duplicate]

Possible Duplicate: How to detect Windows 64 bit platform with .net? How can I retrieve the operating system architecture (x86 or x64) with .NET 2.0? I have not found any good method to get the ...
вопрос задан: 23 May 2017 11:54
0
ответов

Как узнать во время выполнения, что я использую режим x86 или x64 в C # [дубликат]

Возможный дубликат: как узнать если мое приложение работает как 32- или 64-разрядное приложение? Привет, у меня есть приложение на C # (Framework 3.5 SP1), и мне нужно загрузить неуправляемую сборку во время выполнения, но ...
вопрос задан: 23 May 2017 11:45
0
ответов

Проект.NET AnyCPU связывает специфичную для платформы библиотеку [дубликат]

Возможный дубликат :Загрузка сборки x86 или x64 Я пытаюсь скомпилировать проект Any CPU.NET, но мне нужно связать библиотеку SQLite, которая имеет разные версии для платформ x86 и x64. Изменение только...
вопрос задан: 23 May 2017 11:45
0
ответов

Любой процессор, зависящий от C ++ / CLI, зависящий от собственной библиотеки DLL C (любой процессор для c ++ / cli)

Вот моя проблема. Я оборачиваю C dll в C #. Для этого я сначала пишу оболочку C ++ / CLI. Собственная библиотека C связана с оболочкой C ++ / CLI. (Свойства компоновщика в проекте C ++ / cli). Вот ...
вопрос задан: 23 May 2017 10:32
0
ответов

How to disassemble, modify and then reassemble a Linux executable?

Is there anyway this can be done? I've used objdump but that doesn't produce assembly output that will be accepted by any assembler that I know of. I'd like to be able to change instructions within an ...
вопрос задан: 3 April 2017 15:52
0
ответов

Заголовочные файлы для встроенных функций x86 SIMD

Какие заголовочные файлы содержат встроенные функции для различных расширений набора инструкций x86 SIMD (MMX, SSE, AVX, ...)? Кажется, невозможно найти такой список в Интернете. Поправьте меня если я ошибаюсь.
вопрос задан: 2 January 2017 07:30
0
ответов

х86 где указатель стека указывает?

Например, если я нажал топор, это [SP] указывает на мое значение топора или слово после топора? Также он отличается от реального режима в защищенный режим? Я спрашиваю об этом, потому что книга «Искусство сборки» иллюстрирует и ...
вопрос задан: 30 December 2016 07:31
0
ответов

Smashing Stack в Ubuntu 11.10

Сталкивался ли кто-нибудь из вас со следующей проблемой при попытке перезаписать указатель $esp? Конечно, попытка использовать законный размер буфера всегда работает! Но когда вы пытаетесь увеличить размер буфера, чтобы перезаписать...
вопрос задан: 30 December 2016 07:22
0
ответов

Базовый указатель и указатель стека

Учитывая этот фрагмент кода :swap :push ebp ; резервное копирование базового указателя, mov ebp, esp ; поместить контекст регистров в стек push eax...
вопрос задан: 30 December 2016 07:22
0
ответов

Сколько регистров XMM доступно на процессоре x86 с поддержкой SSE?

Как узнать количество регистров XMM на процессоре с поддержкой SSE? На Intel X5550, например.
вопрос задан: 23 December 2016 14:25
0
ответов

Как объединить два значения __m128 в __m256?

Я хотел бы объединить два значения __m128 в одно __m256. Примерно так: __m128 a = _mm_set_ps(1, 2, 3, 4); __m128 b = _mm_set_ps(5, 6, 7, 8); что-то вроде: __m256 c = { 1, 2, 3, 4, ...
вопрос задан: 23 December 2016 04:49
0
ответов

Проверьте, равен ли регистр нулю с CMP reg, 0 против OR reg, reg?

Есть ли разница в скорости выполнения при использовании следующего кода: cmp al, 0 je done и следующее: или al, al jz done Я знаю, что инструкции JE и JZ одинаковы, а также что используется OR ...
вопрос задан: 17 December 2016 04:50
0
ответов

Почему вы не можете установить указатель инструкции напрямую?

В статье Википедии об ассемблере x86 говорится, что "регистр IP не может быть доступен программисту напрямую". Напрямую - это значит с помощью таких инструкций, как mov и add. Почему нельзя? В чем причина ...
вопрос задан: 14 December 2016 14:59
0
ответов

Как аппаратное обеспечение и компилятор обрабатывают инструкцию x86, переходящую в неисполняемую страницу?

В отличие от (большинство) арка RISC, инструкции x86 имеют переменную длину. Начало / конец инструкции не обязательно выравнивать. Если компилятор этого не сделает, одна инструкция могла бы просто лежать на странице ...
вопрос задан: 20 October 2016 16:18