Я бы хотел использовать аппаратный счетчик производительности, в частности, процессоры x86, чтобы получать промахи в кэше или неверное предсказание переходов. Счетчики производительности широко используются в продвинутых профилировщиках, таких как Intel
Я читаю из локальной переменной потока в моем коде вот так, // tid_local объявлен как __thread int tid_local;
long tid = tid_local Осмотрев дизассемблированный код, я увидел что-то вроде ...
Я пытаюсь понять смысл исполняемый код, который GCC (4.4.3) генерирует для машины x86_64, работающей под Ubuntu Linux. В частности, я не понимаю, как код отслеживает ...
То есть, как узнать, сколько параметров ожидает конкретный syscall, в каком регистре должен находиться каждый параметр, и, наконец, что означает каждый параметр? Есть ли команда man alike, чтобы сказать ...
ulimit -c можно использовать для установки RLIMIT_CORE и ограничения максимального размера coredump, который может генерировать процесс. Любой более крупный coredump будет усечен до этого размера. Можно ли сделать что-нибудь полезное с таким ...
Я пытаюсь определить некоторые подпрограммы, в которых есть вызовы printf.
Очень тривиальный пример: extern printf
LINUX equ 80H
EXIT equ 60 section .data intfmt:...
Я пишу код, используя встроенные функции C для инструкций Intel AVX. Если у меня есть упакованный двойной вектор (a __m256d), то каков будет наиболее эффективный способ (т.е. наименьшее количество операций) для хранения ...
Позвольте мне пропустить введение и перейти к хорошей части.
Я читаю «Справочник этичного хакера» и пробую пример кода (около p175). -------------------------------------------------- --------------...
В 64-bit IDT Gate Descriptor от Intel есть Segment Selector. Однако, насколько я понял из 5 частей руководства Intel, линейный адрес обработчика прерываний загружается в RIP из ...
С помощью этой функции: mov 1069833(%rip),%rax # 0x2b5c1bf9ef90 <_fini+3250648>
add %fs:0x0,%rax
retq Как интерпретировать вторую инструкцию и узнать, что было добавлено к RAX?
Попытка скомпилировать не-PIC-код в общую библиотеку на x64 с gcc приводит к ошибке, что-то вроде: / usr / bin / ld: /tmp/ccQ2ttcT.o: перемещение R_X86_64_32 против `локального символа 'не может быть использовано. ..
Я пишу собственную ОС для 64-битных процессоров и застрял с проблемой общей защиты. Моя ОС не будет полагаться на ошибку страницы для реализации механизма защиты пользовательского пространства, поэтому я обнаружил, что есть ...
При просмотре вспомогательного выхода следующего кода (без оптимизации, -O2 и -O3 дают очень похожие результаты): int Main (int argc, char ** argv Несомненно
{волатильный поплавок f1 = 1,0f; Волатильный поплавок ...
Я следую за руководством здесь, и немного изменено для X86-64 (в основном замените EAX на RAX и т. Д.), Чтобы он компилировал: #inClude
#include
#include
Итак, X86-64 имеет RIP-относительные адреса, которые облегчают пишу коды, которые легко писать, и перемещение требуется гораздо меньше. Почему перемещения все еще нужны тогда на X86-64? Для каких особенностей? Я могу попытаться исследовать ...
GetTimeOfDay - это SYSCALL X86-86 в соответствии с этой страницей (просто поиск GetTimeOfday в коробке): int gettimeofday (structime timeval * tv, struction timezone * tz); Я думал, что DISAC должен быть легким, ...
Где я могу найти все различия в типах данных между двоичными интерфейсами приложений (ABI) i386 и AMD64? Я знаю, что длинный тип 32-битный в i386 ABI и 64-битный в AMD64. Это ...
Для некоторого кода, привязанного к процессору, использующего 64-разрядные переменные, целесообразно использовать набор инструкций Amd64, а не x86. Как это можно сделать в 32-битной Windows (например, Windows XP SP3)? Конечно, я предполагаю ...
Я пытался узнать больше о различных воротах в архитектуре x86. Если я правильно понимаю, то прерывание и шлюз ловушки используются для обработки прерываний hw и sw соответственно. В то время как CALL ...
من با اظهار نظر در یکی از پرونده های هدر هسته لینوکس کمی گیج شده ام ، arch / x86 / شامل / asm / nops.h این بیان می کند که <...> دستورالعمل های زیر در حالت 64 بیتی نیستند ، زیرا ...
Я пытаюсь соединиться с разделяемой библиотекой x86 в Ubuntu 11.04 x64, Натти Нарвал, но получаю следующее сообщение: / usr / bin / ld: skipping несовместимо ./bin/ libshared.so при поиске -lshared
/ usr / ...
Я понимаю, что в сборке x86_64 есть, например, (64-битный) регистр rax, но к нему также можно получить доступ как 32-битный регистр, eax, 16-битный, ax и 8-битный, al. В какой ситуации я бы не просто использовал ...
Итак, я изучаю сборку nasm x86_64 на своем Mac для развлечения. После hello world и некоторой базовой арифметики я попытался скопировать немного более продвинутую программу hello world с этого сайта и изменить ее для 64 ...
Судя по прошлым данным, большинство 32-битных драйверов не работают в 64-битной версии. На чисто концептуальном уровне я считаю, что 64-битная машина имеет дополнительное «пространство» при использовании 32-битных драйверов, поэтому я пытаюсь определить
I Я работаю над приложением (написанным на C ++), которое генерирует некоторый машинный код во время выполнения (Linux, x86-64 сейчас, но я планирую перейти на ARM). Затем он сохраняет сгенерированный код в памяти и выполняет его ...
У меня есть 32-битное приложение, которое я планирую запустить в 64-битной Windows 7. На данном этапе я не могу преобразовать все приложение в 64-битное из-за зависимости от сторонних функций. Однако я бы ...
Я пытаюсь понять низкоуровневую механику CAS на x86 / x64, и я был бы очень признателен некоторая помощь / понимание. Я думал об этом потому, что пытаюсь рассуждать об экспоненциальном ...