Результаты поиска по запросу "x86"
вау спасибо за отличный пост Я прочитаю это и изменю это соответственно. (:
аюсь использовать cmpxchg со встроенной сборкой через c. Это мой код: static inline int cas(volatile void* addr, int expected, int newval) { int ret; asm volatile("movl %2 , %%eax\n\t" "lock; cmpxchg %0, %3\n\t" "pushfl\n\t" "popl %1\n\t" "and ...
YASM кодирует все эти случаи идентично NASM.
оворит, что операция памяти использует сегмент SS, если EBP используется в качестве базового регистра. В следствии,[ebp + esi] а также[esi + ebp] ссылки на сегменты SS и DS соответственно. Смотрите документацию NASM:3.3 Эффективный адрес ...
Я не пробовал это на Годболте, но ты мог.
аюIDA Pro Book [https://nostarch.com/idapro2.htm], На странице 86, обсуждая соглашения о вызовах, автор показывает пример соглашения о вызовах cdecl, которое устраняет необходимость для вызывающей стороны очищать аргументы из стека. Я ...
Почему IA32 не позволяет памяти перемещаться в память mov?
В архитектуре Intel IA32 такие инструкции, как movl, movw, не разрешают операнды, которые являются обеими ячейками памяти. Например, инструкция movl (% eax),...
что-то это становится менее важным.
отрим следующую сборку x86-64: inner: ... ret outer: .top: call inner dec rdi jnz .top retФункцияouter просто неоднократно делаетcall к функцииinner (чье тело не показано - оно может быть пустым). Делает сериюcall инструкции вouterи ...
).
аюсь измерить время выполнения некоторых команд в c ++ с использованием физических часов, но столкнулся с проблемой, заключающейся в том, что процесс считывания измерения с физических часов на компьютере может занять много времени. Вот ...
этот ряд заканчивается рядом длины
ал проект в ASM о треугольнике Паскаля, используя NASM поэтому в проекте нужно рассчитать паскаль треугольник от линии 0 до линии 63 Моя первая проблема - где хранить результаты расчетов -> память Вторая проблема, какой тип памяти я использую ...
Это зависит от того, насколько велики ваши массивы: если массивы сопоставимы или меньше, чем размер LLC, то вы наверняка получите некоторую выгоду, если будете делать что-то задом наперед, поскольку разумная часть данных последней обработки может находиться в кэше. (но это также осложняется новыми функциями LLC, которые пытаются обнаружить потоковые нагрузки и изменить политику замены кэша при их обнаружении). Более общий подход к этой работе - просто заблокировать вашу обработку: вместо того, чтобы выполнять каждый этап целиком, попробуйте чередовать ...
аюсь векторизовать цикл, вычисляя точечное произведение больших векторов с плавающей точкой. Я вычисляю это параллельно, используя тот факт, что CPU имеет большое количество регистров XMM, например: __m128* A, B; __m128 dot0, dot1, dot2, dot3 = ...
меньший диапазон. Это тот же трюк в обратном порядке, который вы используете для log (x): извлеките экспоненту ввода, чтобы получить log2 (integer_part (x)).
эффективное (быстрое) приближение экспоненциальной функции, работающей с элементами AVX (плавающая точка одинарной точности). А именно -__m256 _mm256_exp_ps( __m256 x ) без SVML. Относительная точность должна быть примерно равна ~ 1e-6 или ~ 20 ...
не позволяет вам внести необходимые изменения. Вот почему формулировка первой части звучит так, будто я не согласен с тем, что вы сказали. Во всяком случае, существенное ограничение, ИМО.
зрядный процессор (amd64) поддерживает 32-разрядные инструкции Intel в режиме совместимости. Кроме того, 64-битная установка Linux позволяет запускать ELF, содержащие 32-битные инструкции, если в заголовке ELF указано, что это ...