0
ответов

Чистое умножение старших -бит в ассемблере?

Для реализации действительных чисел от 0 до 1 обычно используются числа с плавающей запятой ANSI или двойные числа. Но числа с фиксированной точностью от 0 до 1 (десятичных знаков по модулю 1 )могут быть эффективно реализованы как 32-битные целые числа ил
вопрос задан: 7 May 2012 20:33
0
ответов

Не удается получить доступ к памяти как тип SSE на x86, но отлично работает на x64

У меня есть код, написанный с использованием встроенных функций MSVC SSE. __m128 ноль = _мм _setzero _ps (); __m128 центр = _мм _нагрузка _ps (&sphere.origin.x ); __m128 boxmin =...
вопрос задан: 7 May 2012 15:42
0
ответов

Почему многопоточность Hyper -сообщается как поддерживаемая на процессорах без нее?

Я пытаюсь собрать информацию о системе и заметил следующее на Intel Xeon E5420 :После выполнения CPUID (EAX=1 )устанавливается EDX[28], что указывает на поддержку многопоточности Hyper -, несмотря на то, что...
вопрос задан: 3 May 2012 19:36
0
ответов

Что делает следующая инструкция по сборке: addd -8(%rbp), %xmm0?

Я пытаюсь выяснить, что на самом деле делает инструкция по сборке. Кроме того, я знаю, что %xmm0 - это...
вопрос задан: 1 May 2012 15:40
0
ответов

Нужна помощь в понимании инструкции вызова E8 asm x86

Мне нужна рука помощи, чтобы понять следующую инструкцию по сборке. Мне кажется, что я звоню по адресу someUnknownValue += 20994A? E8 32F6FFFF -call std ::_Init _locks ::...
вопрос задан: 30 April 2012 20:32
0
ответов

Основное использование немедленных (квадратные скобки) в сборке x86 и yasm

Предположим, у меня есть следующее объявленное: section .bss buffer resb 1 И следующие инструкции: mov al, 5 mov [buffer], al mov bl, [buffer] mov cl, buffer Am I исправить в ...
вопрос задан: 30 April 2012 18:42
0
ответов

Эффективная комплексная арифметика в ассемблере x86

Рассмотрим следующую программу :для i=1 до 10000000 do z < -z *z + c, где z и c — комплексные числа. Каковы эффективные реализации этой программы на ассемблере x86 с использованием x87 и SSE и...
вопрос задан: 30 April 2012 18:41
0
ответов

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

При использовании Microsoft Visual C++ (не CLI, а только стандартного родного C++ )приводит ли встроенная сборка к отключению оптимизации для функции? Когда я проверил с помощью IDA, код некоторых функций...
вопрос задан: 30 April 2012 18:02
0
ответов

Портирование компилятора с ассемблера x86 на LLVM

Итак, недавно, пытаясь отточить свои навыки ассемблера, я написал ОЧЕНЬ простой компилятор для игрушечного языка на C++. Он выполняет однократный проход и напрямую выдает код на этапе синтаксического анализа в несколько строк...
вопрос задан: 30 April 2012 17:10
0
ответов

(Написание ядра) Как изменить таблицу дескрипторов прерываний?

Я пишу маленькое ядро ​​просто для того, чтобы немного разобраться с низкоуровневыми вещами. Прямо сейчас он загружается в Virtual Box, и я могу отображать текст на экране, выделять немного памяти и выполнять другие действительно базовые вещи…
вопрос задан: 29 April 2012 15:50
0
ответов

Идентификация адреса сбоя при общей ошибке защиты (x86)

I Я пытаюсь написать ISR для общей ошибки защиты (GP #13 )на x86. Я не могу понять из документов INTEL, как узнать ошибочный адрес, вызвавший исключение. Я знаю...
вопрос задан: 28 April 2012 08:04
0
ответов

Сборка X86 -Обработка инструкции IDIV

В настоящее время я пишу простой компилятор C, который принимает файл.c в качестве входных данных и генерирует ассемблерный код (X86, AT&T синтаксис ). Все хорошо, но когда я пытаюсь выполнить инструкцию IDIVQ, я получаю...
вопрос задан: 27 April 2012 00:20
0
ответов

x86 jmp для регистрации

Итак, у меня есть адрес в %eax, на который я хотел бы перейти, но код не компилируется, есть ли способ обойти это? movl 0xdeadbeef, %eax jmp %eax ; < ---ошибка компиляции :несоответствие типа для 'jmp'
вопрос задан: 22 April 2012 20:58
0
ответов

Что происходит, когда префикс rep присоединяется к нестроковой инструкции?

Я попытался выяснить разницу в скорости между простыми петлями, петлями-петлями и встроенными повторными петлями. Я написал три программы для сравнения поведения: Программа 1 _start: xor %ecx,%ecx 0: не %ecx ...
вопрос задан: 21 April 2012 12:58
0
ответов

Что означает выравнивание по 16-байтовой границе в x86

Официальное руководство Intel по оптимизации содержит главу о преобразовании команд MMX в SSE, где говорится о следующем статусе: Инструкции по вычислению которые используют операнд памяти, который может не быть ...
вопрос задан: 19 April 2012 08:50
0
ответов

сборка x86 - простая арифметическая программа не работает, MASM32 на xp

У меня есть простая программа, которая добавляет 1 + 1, пока не достигнет миллиона, а затем выдает «Готово!» на консоль. Но когда он работает, он ничего не делает. Вот код: .386 .model flat, опция stdcall ...
вопрос задан: 19 April 2012 02:35
0
ответов

Справочник по инструкциям x86 по функциональности

Я ищу ссылку на "эволюцию" набора инструкций x86. В основном, какие новые команды делают старые команды избыточными и непригодными для использования, а также разбивка инструкций в соответствии с их...
вопрос задан: 15 April 2012 06:40
0
ответов

Что делает asm("pause") и зачем его использовать

Я видел asm("pause") в чужом коде и мне интересно, что он делает. Код компилируется g++ в Linux. Эта строка находится в цикле, который находится в другом потоке, который постоянно опрашивает, есть ли обновление...
вопрос задан: 15 April 2012 05:53
0
ответов

Операнды команд умножения и деления на ассемблере x86, 16-разрядные и выше

Я немного запутался в том, как операции умножения и деления работают в ассемблере x86. Например, приведенный ниже код не кажется слишком сложным, так как имеет дело с 8-битным. 8-битное умножение: ; Пользователь ...
вопрос задан: 14 April 2012 01:09
0
ответов

Перейти, если ноль относительно 1

У меня есть следующий ассемблерный код (x86). .Вход: мов ах, 00ч ; получить ключ из буфера клавиатуры интервал 16ч ; прерывание 16h mov dl, al ; переместить код ASCII в dl мов ах, 02ч ; функция ...
вопрос задан: 12 April 2012 16:42
0
ответов

x86 addl vs subl

Я только заметил, что Clang компилирует этот оператор (без какой-либо оптимизации, конечно):--x; /*интервал х; */into:addl $4294967295, %ecx ##imm = 0xFFFFFFFF Почему? Есть ли какое-либо преимущество в...
вопрос задан: 12 April 2012 15:41
0
ответов

Загрузка программ в оперативную память и их выполнение NASM 16b

Я отчаянно нуждаюсь в решении этой проблемы. Я пытаюсь разработать код сборки, позволяющий мне загружать и выполнять (по вводу пользователя) 2 другие программы сборки .EXE. У меня две проблемы: я не выгляжу...
вопрос задан: 8 April 2012 11:11
0
ответов

Что gcc -O2 делает с рекурсивной функцией Фибоначчи?

Я изучаю ассемблер x86, чтобы написать компилятор. В частности, я беру множество простых рекурсивных функций и пропускаю их через разные компиляторы (OCaml, GCC и т. д.), чтобы...
вопрос задан: 7 April 2012 22:20
0
ответов

Работающий загрузчик FAT16 вызывает ошибку чтения на реальном оборудовании?

Всю последнюю неделю я разрабатывал простую ОС для обучения и... "развлечения". VirtualBox и NASM на буксире, я действительно неплохо начал. В конце концов, я решил, что хочу...
вопрос задан: 4 April 2012 07:42
0
ответов

Удаление аргументов из стека в i386, сборка ARM

Я работаю с некоторыми функциями батута для использования с высокоуровневыми вызовами в C/Objective-C, небольшой поворот в том, как это делает Apple. Если вы вообще знакомы с тем, как работает IMP в Objective-C, ...
вопрос задан: 3 April 2012 00:48
0
ответов

Язык ассемблера для обратного проектирования [закрыто]

Что мне выбрать NASM или MASM для изучения ассемблера. Я хочу изучать сборку, мотивация - обратный инжиниринг. Так что, когда я дизассемблирую какой-нибудь исполняемый файл, я могу понять код с помощью...
вопрос задан: 30 March 2012 23:21
0
ответов

NASM — это чистая сборка, но MASM — это сборка высокого уровня? [закрыто]

Я изучаю сборку, мотивация — возможность обратного проектирования. Я пытаюсь найти ассемблер, с которого мне следует начать, чтобы затем найти учебники и начать писать ассемблер. Я пришел к...
вопрос задан: 30 March 2012 20:57
0
ответов

Как сделать дамп всех регистров XMM в gdb?

Я могу выгрузить все целочисленные регистры в gdb, выполнив всего лишь: регистры информации для регистров xmm (intel) Мне нужен файл вида: print $xmm0 напечатать $xmm1 ... напечатайте $xmm15 и затем отправьте этот файл. Является ли ...
вопрос задан: 30 March 2012 19:52
0
ответов

Перекомпилируйте код x86 с LLVM на более быстрый x86

Можно ли запустить компилятор LLVM с вводом 32-битного кода x86? Существует огромный алгоритм, исходный код которого у меня отсутствует, и я хочу, чтобы он работал быстрее на том же оборудовании. Могу я перевести с ...
вопрос задан: 27 March 2012 23:57
0
ответов

Сборка - инструкция shr включает флаг переноса?

Я видел следующий код: shr AL, 1 jnc bit_0 Я не понимаю, когда включается флаг переноса из-за инструкции shr? Спасибо
вопрос задан: 22 March 2012 14:13