0
ответов

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

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

Является ли функция уничтожения синхронной?

Является ли функция уничтожения в Linux синхронной? Скажем, я программно вызываю функцию kill, чтобы завершить процесс, она вернется только тогда, когда предполагаемый процесс будет завершен, или просто отправит ...
вопрос задан: 6 January 2012 17:57
0
ответов

Деление в ассемблере и плавающая точка

mov eax, 0x01 mov ecx, 0x02 div ecx ; Делим AX/CX, сохраняем остаток в DX cmp dx, 0 je OddNumber int 80h Когда я пытаюсь разделить 1/2, вместо того, чтобы перейти к метке OddNumber, она ... ..
вопрос задан: 27 December 2011 20:53
0
ответов

Хорошие онлайн-ресурсы для изучения сборки x86 [закрыто]

Я наткнулся на множество онлайн-ресурсов о сборке x86. Однако перед тем как начать, я хочу получить отзывы от других. Есть ли какие-либо видеоресурсы, специально предназначенные для программирования на ассемблере x86? ...
вопрос задан: 25 December 2011 19:20
0
ответов

Что означает упорядоченное / неупорядоченное сравнение?

Рассмотрение операторов SSE CMPORDPS - упорядоченное сравнение упакованных одиночных игр CMPUNORDPS - неупорядоченный сравнить упакованные одиночные игры Что значит «упорядоченный» и «неупорядоченный»? Я искал эквивалентные инструкции в ...
вопрос задан: 25 December 2011 18:49
0
ответов

Как заставить приложение .NET работать в 32-битном режиме

Я пытаюсь запустить приложение .NET 3.5 WinForms на Win7 x64. Приложение использует NHibernate и System.Data.OracleClient для доступа к базе данных Oracle. Клиент Oracle 32-битный. Когда ...
вопрос задан: 24 December 2011 18:37
0
ответов

Написание сборки x86 на 64-разрядном процессоре

Например, я использую 64-разрядную версию Windows 7, но, похоже, все лучшие ресурсы для изучения сборки языки говорят о x86. Если написание x86 на x64 возможно, то как лучше всего ...
вопрос задан: 23 December 2011 23:11
0
ответов

Получение циклов ЦП с помощью RDTSC - почему значение RDTSC всегда увеличивается?

Я хочу получить циклы ЦП в определенной точке. Я использую эту функцию в этот момент: static __inline__ unsigned long long rdtsc (void) {unsigned long long int x; __asm__ volatile (".byte 0x0f, ...
вопрос задан: 22 December 2011 10:45
0
ответов

CPUID на нескольких ядрах/NUMA

Я работаю над кодом обнаружения процессора и общего обнаружения среды для моей хобби ОС. Бывают ли случаи, когда CPUID нужно вызывать несколько раз? То есть, если система имеет несколько ядер, нужно ли ...
вопрос задан: 19 December 2011 22:00
0
ответов

Обращение за помощью в устранении проблемы встроенной сборки в программе D

Здравствуйте, я пытаюсь использовать ASM в небольшой программе D: asm {mov AX, 12h; int 10h; } У меня есть сообщение: "конец инструкции" из двух строк в инструкции asm. Я не могу исправить ...
вопрос задан: 16 December 2011 13:57
0
ответов

Любая объектно-ориентированная гибкая библиотека дизассемблера Java x86?

Я ищу библиотеку дизассемблера Java x86, которая должна иметь следующие функции: Дизассемблирование кода X86 Описание команд X86 с помощью классов и объектов Java Классы команд должны принимать ...
вопрос задан: 16 December 2011 08:53
0
ответов

Вам когда-нибудь нужно писать настоящий код на ассемблере?

Часто я слышу людей вокруг себя, которые любят дискутировать о написании на ассемблере, и это одна из тех причин, по которым я тоже хочу научиться писать на нем. В настоящее время я изучаю ассемблер и C ...
вопрос задан: 15 December 2011 17:44
0
ответов

Эквивалент _mm_alignr_epi8 (PALIGNR) в AVX2

В SSE3 инструкция PALIGNR выполняет следующее: PALIGNR объединяет целевой операнд (первый операнд) и исходный операнд (второй операнд) в промежуточную композицию, ...
вопрос задан: 15 December 2011 10:05
0
ответов

Всегда ли mmap возвращает больший адрес

Всегда ли mmap (когда вызывается с MAP_ANONYMOUS, то есть для выделения памяти) возвращает больший адрес памяти, чем предыдущий вызов? Если нет, то есть ли способ заставить его возвращать более высокий адрес ...
вопрос задан: 14 December 2011 12:12
0
ответов

Правильное использование volatile sig_atomic_t

Согласно этому сайту, можно использовать переменные типа volatile sig_atomic_t внутри обработчика сигналов. Теперь мой вопрос, будет ли что-то вроде следующего кода по-прежнему атомарным и, таким образом ...
вопрос задан: 13 December 2011 13:28
0
ответов

Какие функции стандартной библиотеки C используют malloc под капотом

Я хочу знать, какие функции стандартной библиотеки C используют malloc и free под капотом. Мне показалось, что printf будет использовать malloc, но когда я тестировал программу с valgrind, я заметил, что ...
вопрос задан: 12 December 2011 16:02
0
ответов

Указание нескольких файлов с помощью LD_PRELOAD

Я знаю, как переопределить одну библиотеку с помощью LD_PRELOAD, например, следующим образом. LD_PRELOAD =. / Getpid.so ./testpid Теперь у меня вопрос, как переопределить несколько файлов. Скажем, я хочу переопределить оба getpid ...
вопрос задан: 12 December 2011 12:32
0
ответов

Реализация вашего собственного malloc / free с помощью mmap и munmap

Я реализовал свой собственный malloc и бесплатно с помощью mmap. Теперь, в отличие от free, munmap также принимает в качестве параметра длину, поэтому я помещаю длину в качестве дополнительной информации в отображаемую память. Код ...
вопрос задан: 12 December 2011 03:17
0
ответов

Эмуляция процессора x86 - с чего мне начать?

Недавно я узнал, что Фабрис Беллард создал реализацию QEMU (более или менее, как вы поняли) на JavaScript с помощью эмуляция i586. Это вызвало у меня интерес, так как я всегда был очарован ...
вопрос задан: 9 December 2011 17:31
0
ответов

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

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

Инструкция по сборке x86: call * Reg

Кто-нибудь может дать мне некоторую информацию о косвенных вызовах функций в сборке x86, то есть таких инструкциях, как call * Reg Итак, где адрес функции этикетка хранится в реестре. Каким-то образом я ...
вопрос задан: 8 December 2011 20:38
0
ответов

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

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

Производительность инструкций x86 rep на современных (конвейерных/суперскалярных) процессорах

В последнее время я пишу на ассемблере x86 (для развлечения) и мне стало интересно, действительно ли строковые инструкции с префиксом rep имеют преимущество в производительности на современных процессорах или они просто...
вопрос задан: 8 December 2011 01:23
0
ответов

В x86 ассемблере как можно установить нулевой флаг (ZF) без выполнения операции сравнения?

У меня есть небольшой кусок (x86) ассемблера, который я пытаюсь понять, что он делает. ... 6: 81 ec 00 01 00 00 sub $0x100, %esp c: 31 c9 xor %ecx , %ecx e: ...
вопрос задан: 6 December 2011 17:35
0
ответов

Как машинный код обращается к параметрам вызова подпрограммы?

При запуске программы вы можете передавать параметры, например $ myProgram par1 par2 par3 В C вы можете получить доступ к этим параметрам, посмотрев на argv, int main (int argc, char * argv []) {char * aParameter = ...
вопрос задан: 6 December 2011 09:54
0
ответов

Эквивалент для атрибута naked в GCC

У меня есть приложение, написанное на чистом C, смешанное с некоторыми функциями, содержащими чистый ASM. Naked attribute недоступен для x86 (почему? почему?!), а мои asm-функции не любят, когда prologue и ...
вопрос задан: 4 December 2011 09:38
0
ответов

Как PAE (расширение физического адреса) обеспечивает адресное пространство размером более 4 ГБ?

Отрывок из статьи Википедии о расширении физического адреса: аппаратная архитектура процессора x86 дополнена дополнительными адресными строками, используемыми для выбора дополнительной памяти, так физически ...
вопрос задан: 4 December 2011 07:49
0
ответов

rdtsc, слишком много циклов

#include статический встроенный беззнаковый длинный длинный тик () {беззнаковый длинный длинный d; __asm__ __volatile__ ("rdtsc": "= A" (d)); return d; } int main () {long ...
вопрос задан: 30 November 2011 11:15
0
ответов

Соглашение о вызове динамически создаваемой функции в (Visual) C ++

Я использую следующие типы для создания новой функции во время выполнения: typedef int (* pfunc) (int); объединение funcptr {pfunc x; байт * y; }; Это позволяет мне писать инструкции в y, а затем вызывать ...
вопрос задан: 26 November 2011 16:42
0
ответов

Как мне написать все это на ассемблере

У меня есть два макроса, один написан на ассемблере, а другой на C. Второй макрос использует первый макрос. Однако я также хочу написать второй макрос на ассемблере с volatile, чтобы я мог контролировать его ...
вопрос задан: 25 November 2011 16:38