0
ответов

Как получить код операции программы на c

Я знаю, как получить ассемблерный код моей программы с помощью gdb, но как мне получить код операции? Мне нужно это для взлома Linux-сервера (не волнуйтесь, это часть класса, который у меня есть, так что ни один реальный сервер не пострадает)...
вопрос задан: 21 March 2012 21:34
0
ответов

Как найти горизонтальный максимум в 256-битном векторе AVX

У меня есть вектор __m256d, упакованный четырьмя 64-битными значениями с плавающей запятой . Мне нужно найти горизонтальный максимум элементов вектора и сохранить результат в скалярном значении двойной точности; Мой...
вопрос задан: 20 March 2012 21:48
0
ответов

Формат атаки переполнения буфера

Обычно мы все видим базовый буфер формат переполнения, который имеет: - NOP + шелл-код + return_address Почему мы не используем, NOP + return_address + шеллкод? где мы указываем адрес возврата на ...
вопрос задан: 20 March 2012 19:38
0
ответов

Получение исключения с плавающей запятой при попытке использовать div в сборке

Я пытаюсь запустить следующий код в сборке: mov %si, %ax mov $15, %si div %si mov %eax, %esi Когда я делаю свою программу, она компилируется, но во время выполнения она дает ...
вопрос задан: 20 March 2012 19:01
0
ответов

sub eax,0 - это что-то делает?

Я только что открыл файл в IDA Pro и обнаружил код, который выглядит совершенно бесполезным. Тем не менее, я подумал, что это может иметь какую-то пользу. Разве sub eax,0 не просто вычитает 0 из eax? Код: ...
вопрос задан: 20 March 2012 17:03
0
ответов

Почему нижний тестовый цикл предпочтительнее?

Я слышал, как кто-то однажды сказал, что компиляторы часто перемещают условия цикла в конец цикла. То есть такие циклы: while (условие) {... } заменяется на : if (condition) { ...
вопрос задан: 20 March 2012 00:04
0
ответов

Самый быстрый способ суммирования горизонтальных векторов с инструкциями AVX [дубликат]

У меня есть упакованный вектор из четырех 64-битных значений с плавающей запятой. Я хотел бы получить сумму элементов вектора. С SSE (и с использованием 32-битных чисел с плавающей запятой) я мог просто сделать следующее: v_sum = ...
вопрос задан: 19 March 2012 18:20
0
ответов

Как извлекаются данные из оперативной памяти?

В C каждый байт адресуется индивидуально. Предположим, что целое число (скажем, которое использует 4 байта) имеет адрес 0xaddr (который составляет 32 бита, при условии, что у нас есть 32-битный процессор с 32-битной адресной шиной и 32...
вопрос задан: 18 March 2012 00:35
0
ответов

c указатели - формат предупреждения '%x' ожидает аргументы типа 'unsigned int'

Сейчас я читаю Hacking the art of Experiment и там есть пример, который я не могу понять правильно. Попытка скомпилировать приводит к ошибке: ./addressof.c: In function 'main':...
вопрос задан: 14 March 2012 21:53
0
ответов

Перехват тихого NaN

У меня есть приложение, в котором какой-то компонент время от времени вставляет qNaN в большой поток данных, что затем делает недействительной всю обработку (БПФ для вектора, содержащего один qNaN, приводит к все-...
вопрос задан: 8 March 2012 14:16
0
ответов

Номер страницы в прерываниях BIOS

I' m создание небольшого загрузчика для x86 в качестве проекта. На данный момент я пишу несколько функций для работы с экраном, так как это немного утомительно. Большинство функций прерывания BIOS включают номер страницы...
вопрос задан: 6 March 2012 21:04
0
ответов

Как упростить генерацию кода во время выполнения?

Я работаю над программой, которая генерирует код на ассемблере во время выполнения. Например, вот очень простая функция, которая генерирует ассемблерный код для вызова функции GetCurrentProcess (для...
вопрос задан: 6 March 2012 10:11
0
ответов

Портирование программ Windows x86/64 на Windows 8 ARM

В этой статье (от группы инженеров Windows) говорится: WOA [Windows On ARM] не будет поддерживать какой-либо подход к виртуализации или эмуляции и не позволит использовать существующий x86. /64 приложений для ...
вопрос задан: 6 March 2012 01:39
0
ответов

Какие фреймворки модульного тестирования доступны для ассемблера x86?

Похоже, что юнит-тестирование стало модным в наши дни, и я знаю, что многие из вас подумают: «Почему бы просто не использовать язык X с фреймворком Y уже?" Но я предлагаю эту идею дальше...
вопрос задан: 2 March 2012 08:39
0
ответов

Когда sizeof (myPOD) слишком велик для передачи по значению на x64?

Я не ожидаю никакой разницы, когда речь идет о структурах размером до 8 байт, но как насчет больших типов POD? Становится ли передача по значению более дорогой, когда размер типа превышает размер машины ...
вопрос задан: 22 February 2012 13:19
0
ответов

Что такое% gs в сборке

void return_input (void) {массив символов [30]; получает (массив); printf ("% s \ n", массив); } После компиляции в gcc эта функция преобразуется в следующий код сборки: push% ebp mov ...
вопрос задан: 12 February 2012 13:55
0
ответов

Код инициализации программного обеспечения 0xFFFFFFF0H

Intel сообщает, что после сброса процессор переводится в реальный режим, и код инициализации программного обеспечения начинается с 0xFFFFFFF0H. Мои вопросы: Если процессор находится в реальном режиме, как он может получить доступ к памяти> 1 МБ (...
вопрос задан: 9 February 2012 11:47
0
ответов

Пишу собственный JIT-интерпретатор. Как мне выполнять сгенерированные инструкции?

Я собираюсь написать свой собственный JIT-интерпретатор как часть курса по виртуальным машинам. У меня много знаний о языках высокого уровня, компиляторах и интерпретаторах, но мало или совсем нет знаний о сборке x86 (или ...
вопрос задан: 8 February 2012 09:42
0
ответов

SSE: преобразование короткого целого числа в число с плавающей запятой

Я хочу преобразовать массив коротких чисел без знака в число с плавающей запятой с помощью SSE. Допустим, __m128i xVal; // Имеет 8 16-битных целых чисел без знака __m128 y1, y2; // 2 регистра xmm для 8 значений с плавающей запятой Я хочу ...
вопрос задан: 6 February 2012 14:50
0
ответов

Нужна ли защита при использовании xchg

У меня есть набор и тестовая сборочная блокировка на основе xchg. мой вопрос: нужно ли нам использовать ограждение памяти (mfence, sfence или lfence) при использовании инструкции xchg? Изменить: 64-битная платформа: с Intel ...
вопрос задан: 27 January 2012 03:19
0
ответов

перенос / переполнение и вычитание в x86

Я пытаюсь осмыслить флаги переполнения и переноса в x86. Насколько я понимаю, для добавления дополнительных чисел со знаком 2 флаги могут быть сгенерированы только одним из четырех способов (мой ...
вопрос задан: 23 January 2012 00:07
0
ответов

Эффективное деление двойного числа на степень 2

Я реализую функцию когерентного шума и с удивлением обнаружил, что использование градиентного шума (т. Е. Шума Перлина) на самом деле немного быстрее, чем шум значений. Профилирование показывает, что причина для ...
вопрос задан: 19 January 2012 13:21
0
ответов

Можно ли заставить GCC генерировать эффективные конструкторы для объектов, выровненных по памяти?

Я оптимизирую конструктор, который вызывается в одном из самых внутренних циклов нашего приложения. Класс в вопрос имеет ширину около 100 байт, состоит из набора целых чисел, чисел с плавающей запятой, логических значений и тривиальных структур, и ...
вопрос задан: 17 January 2012 12:35
0
ответов

Эффективное умножение / деление двух 128-битных целых чисел на x86 (без 64-битных)

Компилятор: MinGW / GCC Проблемы: Код GPL / LGPL не разрешен (GMP или любая другая библиотека bignum, если на то пошло, излишни для этой проблемы, поскольку у меня уже есть реализованный класс). Я сконструировал свой собственный 128 -...
вопрос задан: 16 January 2012 22:31
0
ответов

Два последовательных хранилища ЦП на x86 сбрасываются в кеш, сохраняя порядок?

Предположим, что на x86 CPU0 и CPU1 работают два потока соответственно. Поток, запущенный на CPU0, выполняет следующие команды: A = 1 B = 1 Строка кэша, содержащая A, изначально принадлежащая CPU1, и эта ...
вопрос задан: 15 January 2012 22:21
0
ответов

Почему компилятор генерирует пару инструкций push / pop?

Я скомпилировал приведенный ниже код с компилятором VC ++ 2010: __declspec (dllexport) беззнаковый int __cdecl __mm_getcsr (void) {return _mm_getcsr (); } и сгенерированный код был: push ECX stmxcsr [ESP] ...
вопрос задан: 14 January 2012 15:41
0
ответов

Почему сложные memcpy / memset superior?

При отладке я часто переходил к написанной вручную ассемблерной реализации memcpy и memset. Обычно они реализуются с использованием потоковых инструкций, если они доступны, цикл развернут, ...
вопрос задан: 13 January 2012 23:53
0
ответов

Игнорирование системного вызова

Я знаю, что вы можете перехватить системный вызов с помощью ptrace. Но я хочу игнорировать системный вызов. Возможно ли, что ptrace перехватит системный вызов, посмотрите его номер, и если это номер ...
вопрос задан: 12 January 2012 19:13
0
ответов

зачем нужны отдельные icache и dcache

Кто-нибудь может объяснить, что мы получаем, имея отдельный кэш инструкций и кэш данных. Любой указатель на хорошую ссылку, объясняющую это, также будет оценен по достоинству.
вопрос задан: 9 January 2012 19:06
0
ответов

x86 IMUL результат правильный, почему?

MOV EAX, 0XB504F333 MOV ECX, 0XB504F333; EAX = B504F333; ECX = B504F333 IMUL ECX; РЕЗУЛЬТАТ = ----------------------------- -; EDX = 15F61998; неверно правильное значение ...
вопрос задан: 8 January 2012 10:23