0
ответов

Нужна помощь в расшифровке сборки GNU из программы Ada 95

Итак, мне дали программу на Ada 95 и ассемблерный код, который компилятор выплевывает вне. У меня проблемы с пониманием того, как среда компилятора / времени выполнения реализует нелокальный доступ. Мог ...
вопрос задан: 18 December 2012 23:31
0
ответов

Как повернуть вектор SSE/AVX

Мне нужно выполнить операцию вращения с как можно меньшим количеством тактов. В первом случае предположим __m128i в качестве источника и типа назначения :источник :|| А0 || А1 || А2 || А3 || пункт назначения :|| А1 || А2 ||...
вопрос задан: 6 December 2012 13:13
0
ответов

Что вызывает сбои страниц?

Согласно Википедии: сбой страницы - это ловушка для программного обеспечения, вызываемая оборудованием, когда программа обращается к странице, отображаемой в виртуальном адресном пространстве, но не загруженной в физическую память. (...
вопрос задан: 11 November 2012 06:45
0
ответов

Как объявить диапазон памяти как неисследованный с помощью GCC на платформе X86?

Хотя я прочитал по поводу инструкций Movntdqa относительно этого, но по очереди Чистый способ выразить диапазон памяти неисправностей или чтение данных, чтобы не загрязнять кэш. Я хочу сделать это ...
вопрос задан: 9 October 2012 04:54
0
ответов

Почему mov ah, bh и mov al, bl вместе намного быстрее, чем одна инструкция mov ax, bx?

Я обнаружил, что mov al, bl mov ah, bh намного быстрее, чем mov ax, bx Кто-нибудь может мне объяснить, почему? Я использую Core 2 Duo 3 Ghz в 32-битном режиме под Windows XP. Компиляция с использованием NASM, а затем ...
вопрос задан: 7 October 2012 04:26
0
ответов

Почему регистры Intel x87 имеют ширину 80 бит? [закрыто]

Почему использование столь «странного» размера регистра? Любая документация о том, почему не желательно использовать 64 или 128 бит для этих регистров?
вопрос задан: 27 September 2012 16:39
0
ответов

реализовать 64 -битную арифметику на 32 -битной машине

Следующий код вычисляет произведение x и y и сохраняет результат в памяти. Данные тип ll _t определяется как эквивалентный long long. typedef long long ll _t; void store _prod (ll _t *dest, int x,...
вопрос задан: 25 September 2012 22:57
0
ответов

Как работает вытеснение в архитектуре x86?

Я изо всех сил пытаюсь понять одну вещь о упреждении. Цитируя Википедию :В вычислительной технике упреждение (более правильно -упреждение )— это акт временного прерывания задачи, выполняемой...
вопрос задан: 15 August 2012 21:30
0
ответов

Могут ли эволюционные алгоритмы создавать машинный код? [закрыто]

Это вопрос общего интереса, поскольку я не пытаюсь решить конкретную проблему. Я огляделся, чтобы попытаться найти несколько статей, посвященных этой области, но мне трудно даже собрать воедино...
вопрос задан: 12 August 2012 19:22
0
ответов

SIMD следующий код

Как мне SIMIDize следующий код в C (, используя встроенные SIMD, конечно )? У меня проблемы с пониманием внутренних свойств SIMD, и это очень помогло бы :int sum _naive (int n, int *a ){целая сумма =...
вопрос задан: 9 August 2012 07:59
0
ответов

Добавление чисел с плавающей запятой/двойных чисел в сборку

Я пытаюсь поэкспериментировать со встроенной сборкой и пытаюсь добавить десятичные числа (нет, НЕ целые числа )во встроенной сборке. Проблема в том, что когда я вызываю следующую функцию :inline double ADD (double...
вопрос задан: 8 August 2012 05:04
0
ответов

какая разница между iretи iretd,iretq?

Я хочу смоделировать состояние iret на сервере Linux x86 _64. Я нашел три инструкции iret :размер операнда 16 iretd :размер операнда 32 iretq :размер операнда 64 Не могу отличить от...
вопрос задан: 2 August 2012 01:48
0
ответов

c сгенерировать функцию и вызвать ее

#include #определить uint беззнаковое целое #определить AddressOfLabel (имя раздела, выход)__asm{mov [out],offset sectionname}; void *CreateFunction (void *start,void *end ){ uint __start= (uint )...
вопрос задан: 31 July 2012 18:15
0
ответов

Определения сегментов для Linux на платформе x86

Linux 3.4.6 определяет следующие макросы в arch/x86/include/asm/segment.h. Кто-нибудь может объяснить, почему макросы __USER добавляют 3 к определенной константе и почему этого не делается для макросов __KERNEL? #...
вопрос задан: 31 July 2012 08:38
0
ответов

В x86, если [mem] не выровнено по 32 -битам, может ли «lock inc [mem]» нормально работать?

В x86, если mem выровнена по 32 -битам, операция mov гарантированно будет атомарной. если [mem] не выровнено по 32 -битам, может ли lock inc [mem] работать нормально? работать нормально :обеспечивать атомарность и не получать частичный...
вопрос задан: 26 July 2012 05:14
0
ответов

Перенос низкоуровневого оптимизированного кода x86 на архитектуру ARM Cortex-A8

Каковы основные предостережения при переносе кода C ++ x86 на ARM процессор? Те, о которых я знаю / слышал (но я не знаю, действительно ли они являются проблемой или даже правдой - проверьте, пожалуйста): SSE -> NEON ...
вопрос задан: 20 July 2012 09:04
0
ответов

Получить время с шагом 1 мс

Прерывание x86 0x1A, кажется, дает время часов компьютера, но оно может дать точное время только в пределах 55 мс (AH=0 ). Есть ли способ получить меньшие приращения (и, может быть, немного более «нормальные» )...
вопрос задан: 19 July 2012 23:47
0
ответов

в чем разница между IVT и IDT?

В системе Linux в чем разница между таблицей векторов прерываний (IVT )и таблицей дескрипторов прерываний (IDT )?
вопрос задан: 18 July 2012 11:29
0
ответов

Что-то не так с моей спин-блокировкой?

Вот моя реализация спин-блокировки, но, похоже, она не может защитить критический код. Что-то не так с моей реализацией? статический __встроенный __int xchg _asm (int *lock, int val ){...
вопрос задан: 17 July 2012 02:26
0
ответов

Как преобразовать целое число без знака в плавающую -точку в ассемблере x86 (32 -бит )?

Мне нужно преобразовать 32-битные -и 64-битные -целые числа без знака в значения с плавающей запятой -в регистрах xmm. Существуют инструкции x86 для преобразования целых чисел со знаком в числа с плавающей запятой одинарной и двойной точности -...
вопрос задан: 10 July 2012 04:32
0
ответов

Как рассчитать MIPS моего процессора?

У меня есть старый ПК. Я хочу точно рассчитать MIPS (Миллион инструкций в секунду )и DMIPS своего процессора. Что я могу сделать для этого?
вопрос задан: 9 July 2012 10:30
0
ответов

c++ использует голую функцию

Я пытаюсь изучить ASM и хочу попробовать несколько вещей в сочетании с C++. Часть ASM выполняется в голой функции. Но всякий раз, когда я вызываю функцию (пустой ), приложение вылетает в следующем...
вопрос задан: 8 July 2012 18:08
0
ответов

gdb найти адрес памяти строки с номером

Скажем, я подключил gdb к процессу, и в его структуре памяти есть файл и номер строки, для которых я хотел бы получить адрес памяти. Как я могу получить адрес памяти строки n в файле x?...
вопрос задан: 2 July 2012 02:21
0
ответов

Почему этот ассемблерный код быстрее?

Я экспериментировал с лексером и обнаружил, что переключение с цикла while -на оператор if -и цикл do -while -в одной части программы приводит к ~20 % более быстрый код, который казался сумасшедшим. Я изолировал...
вопрос задан: 1 July 2012 21:38
0
ответов

Как создать программу на C, которая может запускать шестнадцатеричные коды x86

У меня есть массив шестнадцатеричных кодов, которые переводятся в инструкции по сборке, и я хочу создать программу на C, которая может их выполнять. unsigned char rawData[5356] = { 0x4C, 0x01, 0x0A, 0x00, 0x00, 0x00,...
вопрос задан: 28 June 2012 20:52
0
ответов

Компиляторы C и C++ с «агрессивной» семантикой volatile

Существуют ли какие-либо компиляторы C или C++, которые реализуют «агрессивную» модель согласованности памяти для изменчивых переменных? Под «агрессивной» моделью согласованности я подразумеваю сопровождение всех операций записи в volatile...
вопрос задан: 27 June 2012 22:42
0
ответов

Загрузка ПК :dl регистр и номер диска

Где-то в инете читал, что перед переходом на 0x7c00 BIOS загружает в %dl "номер диска" загружаемого устройства. Но что это за «номер диска»? Каждое устройство, подключенное к компьютеру...
вопрос задан: 24 June 2012 01:44
0
ответов

Изменить настройки целевого ЦП в Visual Studio 2010 Express

Я хочу изменить настройки целевого ЦП с «Любой ЦП» на «x86» в Visual Studio 2010. Я прочитал на другом веб-сайте, что мне нужно сделать следующее: Перейти к запускаемому проекту вашей программы. Открыть ...
вопрос задан: 23 June 2012 17:46
0
ответов

Разница в производительности между системным вызовом и вызовом функции

Я довольно часто слышу, как разработчики драйверов говорят, что лучше избегать переключений режима ядра, насколько это возможно. Я не мог понять точную причину. Для начала, насколько я понимаю, это -Системные вызовы...
вопрос задан: 23 June 2012 13:31
0
ответов

Как использовать относительные переходы?

У меня следующие вопросы относительно относительных переходов: Я так понимаю, что JMP SHORT будет переходить на байт относительно текущего ПК. Это правильно? Это...
вопрос задан: 22 June 2012 17:14