x86-64 — все вопросы

1ответ
4 голоса
Смешивание c ++ и ассемблера не может передать несколько параметров из функции C ++ в ассемблер
Я был разочарован передачей параметров из функции c ++ в сборку. Я не смог найти что-нибудь, что помогло бы в Google и действительно нуждалось бы в вашей помощи. Я использую Visual Studio 2017 и mas
1ответ
4 голоса
Понимание констант с плавающей точкой GCC в выводе списка сборки
Просто из любопытства я использую Проводник компилятора , чтобы увидеть результаты сборки некоторых простых кодов C ++. Рассмотрим следующий пример int main(void){ double x = -5.3; }
1ответ
4 голоса
Разница между значением CR3 и pgd_t
Я играю и пытаюсь вручную выполнить просмотр таблицы страниц на моем процессоре x86_64 с установленным Linux. Я хочу попытаться получить то же значение, используя API Linux и вручную просматривая
1ответ
4 голоса
x86-64 Синтаксис Intel для немедленного операнда rel8?
Первая форма JMP в x86-64: Opcode Instruction Description EB cb JMP rel8 Jump short, RIP = RIP + 8-bit displacement sign Так, например, JMP rel8=-2 - это eb fe. fe - однобайтовый 2-
2ответа
4 голоса
Есть ли дополнительные затраты на вызов функции в отдельном модуле компиляции?
Я знаю, что из-за двойного прыжка есть дополнительные издержки при вызове функции в DSO. Есть ли дополнительные издержки при вызове функции в отдельном модуле компиляции по сравнению с вызовом функци
1ответ
4 голоса
Переместить quadword между xmm и регистром общего назначения в ml64?
В простой программе, написанной для ассемблера x64 от Microsoft, я хочу переместить 64-битное значение между регистром SSE (скажем, xmm0) и регистром общего назначения (скажем, rcx), как в <синта
1ответ
4 голоса
x86-64 конвертировать long в double
У меня возникли проблемы с выяснением, как набрать бросок long в double. Я пытаюсь прочитать в длинном int и использовать его в расчетах в регистрах AVX. Однако я не могу понять, как преобразовать l
1ответ
4 голоса
С Hyper Threading потоки одного физического ядра обмениваются через какой уровень кеша L1 /L2 /L3?
Позволяет ли Hyper Threading использовать L1-кеш для обмена данными между двумя потоками, которые выполняются одновременно на одном физическом ядре, но на двух виртуальных ядрах? При условии, что
2ответа
4 голоса
Резервные байты в стеке: сборка x86 (64 бит)
pushq %rbp movq %rsp, %rbp subq $32, %rsp У меня большой вопрос по поводу объяснения "32 доллара" в третьей инструкции. Информация из поиска и блогов указывает, что в приведенной выше трет
1ответ
4 голоса
Отладка с сегментным регистром ФС
Мне нужно отладить приложение, написанное на C, которое читает и пишет в регистр сегмента FS. Для отладки этого приложения мне нужно увидеть адрес памяти, на который указывает FS. Приложение испо
1ответ
4 голоса
«Cqo», «cdq» и «cwd» x86_64 инструкции. Почему бы не использовать только CQO?
Я не самый опытный программист на ассемблере, и я столкнулся с инструкциями "cqo", "cdq" и "cwd", которые действительны для сборки x86_64. Мне было интересно, есть ли какие-либо преимущества испо
2ответа
4 голоса
Преобразовать _mm_shuffle_epi32 в выражение C для перестановки?
Я работаю над портом SSE2 для NEON. Порт находится на ранней стадии и дает неверные результаты. Одна из причин неправильных результатов - _mm_shuffle_epi32 и выбранные мной инструкции NEON. Докум
1ответ
4 голоса
Значение суффикса «x» во встроенных программах, таких как «_mm256_set1_epi64x»
В некоторых встроенных функциях они используют суффикс x как _mm256_set1_epi64x Что это значит? Для справки, _mm256_set1_epi32 поставляется без этого суффикса.
1ответ
4 голоса
vmovdqa не работает в virtualbox?
Я использую процессор поздней модели i7, который поддерживает avx и avx2, и предположительно virtualbox поддерживает avx и avx2, поэтому в таком случае зависает следующий код? vmovdqa ymm0, qqw
1ответ
4 голоса
Понимание выравнивания стека
Я читаю руководство Intel о фреймах стека. Было отмечено, что    Конец области входного аргумента должен быть выровнен по 16 (32, если   __m256 передается по стеку) граница байта. Я не совс
6ответов
4 голоса
Реализация трассировки на i386
В настоящее время я портирую наш код с альфа-версии (Tru64) на процессор i386 (Linux) в C. Все прошло довольно гладко, пока я не посмотрел на портирование нашего процедура обработки исключений. В на
2ответа
4 голоса
А как же программист «Невидимых» регистров?
Это «видимый программист» регистр x86-64: альтернативный текст http://www.usenix.org /events/bsdcon/full_papers/linden/linden_html/reg.gif А как насчет невидимых регистров? Только сейчас я
3ответа
4 голоса
Извлечение данных из регистра xmm в «стандартные» переменные, внутренние
Как я могу извлечь 2 байта или любое количество байтов из регистра xmm? В настоящее время я использую массив для выгрузки целого регистра, а затем я получаю доступ к нужным байтам Однако это не т
1ответ
4 голоса
Использование RIP-относительной адресации в сборке OSX x64
Я пытался создать базовый пример printf в коде сборки x86-64 для OSX, вот моя первая версия: section .data msg db 'hello', 0Ah section .text extern _printf global _main _main: sub rsp, 8 mo
1ответ
4 голоса
Доступ к памяти GCC выше вершины стека
У меня есть функция C, которая выполняет некоторые вычисления SSE. Когда я компилирую его с помощью GCC, я получаю следующий код /* Start of function */ mov (%rdi),%rax movslq %ecx,%rcx ... mov
1 2 3 4 5

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132