0
ответов

API-интерфейсы аппаратного счетчика производительности для Windows

Я бы хотел использовать аппаратный счетчик производительности, в частности, процессоры x86, чтобы получать промахи в кэше или неверное предсказание переходов. Счетчики производительности широко используются в продвинутых профилировщиках, таких как Intel
вопрос задан: 6 January 2012 21:17
0
ответов

Локальные переменные потока и сегмент fs

Я читаю из локальной переменной потока в моем коде вот так, // tid_local объявлен как __thread int tid_local; long tid = tid_local Осмотрев дизассемблированный код, я увидел что-то вроде ...
вопрос задан: 5 January 2012 17:42
0
ответов

Соглашения о вызовах x86_64 и фреймы стека

Я пытаюсь понять смысл исполняемый код, который GCC (4.4.3) генерирует для машины x86_64, работающей под Ubuntu Linux. В частности, я не понимаю, как код отслеживает ...
вопрос задан: 24 December 2011 15:28
0
ответов

Где можно проверить прототипы syscalls на машинах x86-64?

То есть, как узнать, сколько параметров ожидает конкретный syscall, в каком регистре должен находиться каждый параметр, и, наконец, что означает каждый параметр? Есть ли команда man alike, чтобы сказать ...
вопрос задан: 22 December 2011 11:37
0
ответов

Какая польза от усеченного coredump?

ulimit -c можно использовать для установки RLIMIT_CORE и ограничения максимального размера coredump, который может генерировать процесс. Любой более крупный coredump будет усечен до этого размера. Можно ли сделать что-нибудь полезное с таким ...
вопрос задан: 12 December 2011 21:45
0
ответов

подпрограммы сборки вызываются дважды, даже не будучи вызванными из main

Я пытаюсь определить некоторые подпрограммы, в которых есть вызовы printf. Очень тривиальный пример: extern printf LINUX equ 80H EXIT equ 60 section .data intfmt:...
вопрос задан: 11 December 2011 14:22
0
ответов

Сохранение отдельных двойников из упакованного двойного вектора с использованием Intel AVX

Я пишу код, используя встроенные функции C для инструкций Intel AVX. Если у меня есть упакованный двойной вектор (a __m256d), то каков будет наиболее эффективный способ (т.е. наименьшее количество операций) для хранения ...
вопрос задан: 9 December 2011 04:07
0
ответов

Переполнение стека eip x86 против простого кода C x86_64

Позвольте мне пропустить введение и перейти к хорошей части. Я читаю «Справочник этичного хакера» и пробую пример кода (около p175). -------------------------------------------------- --------------...
вопрос задан: 8 December 2011 15:25
0
ответов

IA-32e 64-bit IDT Gate Descriptor

В 64-bit IDT Gate Descriptor от Intel есть Segment Selector. Однако, насколько я понял из 5 частей руководства Intel, линейный адрес обработчика прерываний загружается в RIP из ...
вопрос задан: 27 November 2011 17:17
0
ответов

Как интерпретировать обращения к сегментным регистрам на x86-64?

С помощью этой функции: mov 1069833(%rip),%rax # 0x2b5c1bf9ef90 <_fini+3250648> add %fs:0x0,%rax retq Как интерпретировать вторую инструкцию и узнать, что было добавлено к RAX?
вопрос задан: 23 October 2011 13:30
0
ответов

Почему gcc вызывает PIC для общих библиотек x64?

Попытка скомпилировать не-PIC-код в общую библиотеку на x64 с gcc приводит к ошибке, что-то вроде: / usr / bin / ld: /tmp/ccQ2ttcT.o: перемещение R_X86_64_32 против `локального символа 'не может быть использовано. ..
вопрос задан: 23 October 2011 08:02
0
ответов

Проверка предела сегмента в 64-битном режиме AMD

Я пишу собственную ОС для 64-битных процессоров и застрял с проблемой общей защиты. Моя ОС не будет полагаться на ошибку страницы для реализации механизма защиты пользовательского пространства, поэтому я обнаружил, что есть ...
вопрос задан: 22 October 2011 17:53
0
ответов

GCC X86-64 Субоптимальная сборка выхода, почему?

При просмотре вспомогательного выхода следующего кода (без оптимизации, -O2 и -O3 дают очень похожие результаты): int Main (int argc, char ** argv Несомненно {волатильный поплавок f1 = 1,0f; Волатильный поплавок ...
вопрос задан: 20 September 2011 23:25
0
ответов

Как играть с Ptrace на X86-64?

Я следую за руководством здесь, и немного изменено для X86-64 (в основном замените EAX на RAX и т. Д.), Чтобы он компилировал: #inClude #include #include
вопрос задан: 14 September 2011 14:48
0
ответов

С RIP-адресами, почему X86-64 по-прежнему нуждаются в перемещении?

Итак, X86-64 имеет RIP-относительные адреса, которые облегчают пишу коды, которые легко писать, и перемещение требуется гораздо меньше. Почему перемещения все еще нужны тогда на X86-64? Для каких особенностей? Я могу попытаться исследовать ...
вопрос задан: 6 September 2011 07:15
0
ответов

Любой может понять, как работает GetTimeOfDay?

GetTimeOfDay - это SYSCALL X86-86 в соответствии с этой страницей (просто поиск GetTimeOfday в коробке): int gettimeofday (structime timeval * tv, struction timezone * tz); Я думал, что DISAC должен быть легким, ...
вопрос задан: 1 September 2011 06:36
0
ответов

Различия между i386 и AMD64 ABI

Где я могу найти все различия в типах данных между двоичными интерфейсами приложений (ABI) i386 и AMD64? Я знаю, что длинный тип 32-битный в i386 ABI и 64-битный в AMD64. Это ...
вопрос задан: 20 August 2011 16:33
0
ответов

Облегченный метод использования инструкций Amd64 в 32-разрядной Windows?

Для некоторого кода, привязанного к процессору, использующего 64-разрядные переменные, целесообразно использовать набор инструкций Amd64, а не x86. Как это можно сделать в 32-битной Windows (например, Windows XP SP3)? Конечно, я предполагаю ...
вопрос задан: 20 August 2011 16:32
0
ответов

ворота задачи, ворота прерывания, ворота вызова

Я пытался узнать больше о различных воротах в архитектуре x86. Если я правильно понимаю, то прерывание и шлюз ловушки используются для обработки прерываний hw и sw соответственно. В то время как CALL ...
вопрос задан: 13 July 2011 20:42
0
ответов

آیا Mov٪ esi ،٪ esi ممنوع است یا در x86-64 وجود ندارد؟

من با اظهار نظر در یکی از پرونده های هدر هسته لینوکس کمی گیج شده ام ، arch / x86 / شامل / asm / nops.h این بیان می کند که <...> دستورالعمل های زیر در حالت 64 بیتی نیستند ، زیرا ...
вопрос задан: 11 July 2011 17:38
0
ответов

Связывание с разделяемой библиотекой x86 в Linux x64

Я пытаюсь соединиться с разделяемой библиотекой x86 в Ubuntu 11.04 x64, Натти Нарвал, но получаю следующее сообщение: / usr / bin / ld: skipping несовместимо ./bin/ libshared.so при поиске -lshared / usr / ...
вопрос задан: 8 July 2011 14:00
0
ответов

64-битная сборка, когда для использования регистров меньшего размера

Я понимаю, что в сборке x86_64 есть, например, (64-битный) регистр rax, но к нему также можно получить доступ как 32-битный регистр, eax, 16-битный, ax и 8-битный, al. В какой ситуации я бы не просто использовал ...
вопрос задан: 5 July 2011 23:00
0
ответов

Ошибка ассемблера: 64-разрядная версия Mach-O не поддерживает абсолютную 32-битные адреса

Итак, я изучаю сборку nasm x86_64 на своем Mac для развлечения. После hello world и некоторой базовой арифметики я попытался скопировать немного более продвинутую программу hello world с этого сайта и изменить ее для 64 ...
вопрос задан: 5 July 2011 02:37
0
ответов

почему 32-битные драйверы не работают в 64-битной версии

Судя по прошлым данным, большинство 32-битных драйверов не работают в 64-битной версии. На чисто концептуальном уровне я считаю, что 64-битная машина имеет дополнительное «пространство» при использовании 32-битных драйверов, поэтому я пытаюсь определить
вопрос задан: 10 June 2011 14:42
0
ответов

Внедрение кода в исполняемый файл во время выполнения

I Я работаю над приложением (написанным на C ++), которое генерирует некоторый машинный код во время выполнения (Linux, x86-64 сейчас, но я планирую перейти на ARM). Затем он сохраняет сгенерированный код в памяти и выполняет его ...
вопрос задан: 3 June 2011 19:01
0
ответов

Неге% eax printf-қа қоңырау шалу алдында нөлге теңестірілген?

Мен x86-ны аздап жинап алуға тырысамын. Мен gcc -S -O0 мәнімен 64 биттік компьютерде жинақтап жатырмын. C-де код: printf («% d», 1); Шығыс: movl $ 1,% esi ағып кету LC0 (% rip),% rdi movl $ 0,% eax; НЕГЕ? қоңырау шалыңыз ...
вопрос задан: 2 June 2011 09:38
0
ответов

Значит, на x86-64 это big endian?

0x0000000000400507
: 74 0c je 0x400515
0x0000000000400509
: bf 28 06 40 00 mov $ 0x400628,% edi .. 0x400507
: 0x28bf0c74 Это ...
вопрос задан: 16 May 2011 13:48
0
ответов

Как может ли первый из этих двух фрагментов кода работать в 3 раза быстрее, чем второй, когда он выполняет больше работы?

Как может этот код: var check = 0; for (var numerator = 0; числитель <= maxNumerator; числитель ++) {проверить + = числитель> = 0? numerator - (int) ((numerator * qdi.Multiplier)> ...
вопрос задан: 13 May 2011 00:18
0
ответов

64-битные функции в 32-битном приложении?

У меня есть 32-битное приложение, которое я планирую запустить в 64-битной Windows 7. На данном этапе я не могу преобразовать все приложение в 64-битное из-за зависимости от сторонних функций. Однако я бы ...
вопрос задан: 27 April 2011 07:41
0
ответов

Каковы внутренние характеристики процессора при конфликте CAS?

Я пытаюсь понять низкоуровневую механику CAS на x86 / x64, и я был бы очень признателен некоторая помощь / понимание. Я думал об этом потому, что пытаюсь рассуждать об экспоненциальном ...
вопрос задан: 19 April 2011 17:10