Результаты поиска по запросу "x86"

2 ответа

вау спасибо за отличный пост Я прочитаю это и изменю это соответственно. (:

аюсь использовать 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 ...

2 ответа

YASM кодирует все эти случаи идентично NASM.

оворит, что операция памяти использует сегмент SS, если EBP используется в качестве базового регистра. В следствии,[ebp + esi] а также[esi + ebp] ссылки на сегменты SS и DS соответственно. Смотрите документацию NASM:3.3 Эффективный адрес ...

2 ответа

Я не пробовал это на Годболте, но ты мог.

аюIDA Pro Book [https://nostarch.com/idapro2.htm], На странице 86, обсуждая соглашения о вызовах, автор показывает пример соглашения о вызовах cdecl, которое устраняет необходимость для вызывающей стороны очищать аргументы из стека. Я ...

ТОП публикаций

4 ответа

Почему IA32 не позволяет памяти перемещаться в память mov?

В архитектуре Intel IA32 такие инструкции, как movl, movw, не разрешают операнды, которые являются обеими ячейками памяти. Например, инструкция movl (% eax),...

1 ответ

 что-то это становится менее важным.

отрим следующую сборку x86-64: inner: ... ret outer: .top: call inner dec rdi jnz .top retФункцияouter просто неоднократно делаетcall к функцииinner (чье тело не показано - оно может быть пустым). Делает сериюcall инструкции вouterи ...

3 ответа

).

аюсь измерить время выполнения некоторых команд в c ++ с использованием физических часов, но столкнулся с проблемой, заключающейся в том, что процесс считывания измерения с физических часов на компьютере может занять много времени. Вот ...

1 ответ

 этот ряд заканчивается рядом длины

ал проект в ASM о треугольнике Паскаля, используя NASM поэтому в проекте нужно рассчитать паскаль треугольник от линии 0 до линии 63 Моя первая проблема - где хранить результаты расчетов -> память Вторая проблема, какой тип памяти я использую ...

1 ответ

Это зависит от того, насколько велики ваши массивы: если массивы сопоставимы или меньше, чем размер LLC, то вы наверняка получите некоторую выгоду, если будете делать что-то задом наперед, поскольку разумная часть данных последней обработки может находиться в кэше. (но это также осложняется новыми функциями LLC, которые пытаются обнаружить потоковые нагрузки и изменить политику замены кэша при их обнаружении). Более общий подход к этой работе - просто заблокировать вашу обработку: вместо того, чтобы выполнять каждый этап целиком, попробуйте чередовать ...

аюсь векторизовать цикл, вычисляя точечное произведение больших векторов с плавающей точкой. Я вычисляю это параллельно, используя тот факт, что CPU имеет большое количество регистров XMM, например: __m128* A, B; __m128 dot0, dot1, dot2, dot3 = ...

3 ответа

 меньший диапазон. Это тот же трюк в обратном порядке, который вы используете для log (x): извлеките экспоненту ввода, чтобы получить log2 (integer_part (x)).

эффективное (быстрое) приближение экспоненциальной функции, работающей с элементами AVX (плавающая точка одинарной точности). А именно -__m256 _mm256_exp_ps( __m256 x ) без SVML. Относительная точность должна быть примерно равна ~ 1e-6 или ~ 20 ...

1 ответ

 не позволяет вам внести необходимые изменения. Вот почему формулировка первой части звучит так, будто я не согласен с тем, что вы сказали. Во всяком случае, существенное ограничение, ИМО.

зрядный процессор (amd64) поддерживает 32-разрядные инструкции Intel в режиме совместимости. Кроме того, 64-битная установка Linux позволяет запускать ELF, содержащие 32-битные инструкции, если в заголовке ELF указано, что это ...