Для меня это просто похоже на фанк MOV. Каково его назначение и когда я должен его
x86-64 - это 64-битное расширение архитектуры Intel x86.
Для меня это просто похоже на фанк MOV. Каково его назначение и когда я должен его
Я впервые заметил в 2009 году, что GCC (по крайней мере, в моих проектах и на моих машинах) имеет тенденцию генерировать заметно более быстрый код, если я оптимизирую для size ( -Os) вместо скорости ( -O2или -O3), и с тех пор я удивляюсь, почему. Мне удалось создать (довольно глупый) код, который...
У меня есть произвольный список сборок .NET. Мне нужно программно проверить, была ли каждая DLL построена для x86 (в отличие от x64 или любого процессора). Это
Я читал о div и mulсборочных операциях, и я решил , чтобы увидеть их в действии, написав простую программу в C: Файл деление.c #include <stdlib.h> #include <stdio.h> int main() { size_t i = 9; size_t j = i / 5; printf("%zu\n",j); return 0; } И затем генерирование кода на ассемблере gcc...
Задний план: При оптимизации кода на Pascal со встроенным языком ассемблера я заметил ненужную MOVинструкцию и удалил ее. К моему удивлению, удаление ненужных инструкций привело к замедлению работы моей программы . Я обнаружил, что добавление произвольных, бесполезных MOVинструкций еще больше...
Следующие ссылки объясняют соглашения о системных вызовах x86-32 для UNIX (BSD-версия) и Linux: http://www.int80h.org/bsdasm/#system-calls http://www.freebsd.org/doc/en/books/developers-handbook/x86-system-calls.html Но каковы соглашения о системных вызовах x86-64 в UNIX и...
Я полагаю, что обнаружил ошибку в GCC при реализации PCG PRNG О'Нила. ( Исходный код в проводнике компилятора Годболта ) После умножения oldstateна MULTIPLIER(результат сохраняется в rdi), GCC не добавляет этот результат INCREMENT, перемещая INCREMENTвместо него значение rdx, которое затем...
Я хочу определить, соответствует ли собственная сборка x64 или x86 из приложения с управляемым кодом ( C # ). Я думаю, что это должно быть где-то в заголовке PE, поскольку загрузчик ОС должен знать эту информацию, но я не смог ее найти. Конечно, я предпочитаю делать это в управляемом коде, но при...
Rust имеет 128-битные целые числа, они обозначаются типом данных i128(и u128для целых чисел без знака): let a: i128 = 170141183460469231731687303715884105727; Как Rust заставляет эти i128значения работать в 64-битной системе; например, как он делает с ними арифметические операции? Поскольку,...
В x86-64 Tour of Intel Manuals я прочитал Возможно, самым удивительным фактом является то, что такая инструкция, как MOV EAX, EBXавтоматически обнуляет старшие 32 бита RAXрегистра. В документации Intel (3.4.1.1 Регистры общего назначения в 64-битном режиме в ручной базовой архитектуре), цитируемой...
У меня небольшая дилемма относительно того, как настроить мои сборки визуальной студии для множественного таргетинга. Предыстория: c # .NET v2.0 с вызовом p / в сторонние 32-битные библиотеки DLL, SQL compact v3.5 SP1 с проектом установки. Прямо сейчас целевая платформа установлена на x86,...
У AMD есть спецификация ABI, в которой описывается соглашение о вызовах для использования на x86-64. Все операционные системы следуют ему, за исключением Windows, которая имеет собственное соглашение о вызовах x86-64. Зачем? Кто-нибудь знает технические, исторические или политические причины этой...
В его нынешнем виде этот вопрос не подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, повлечет за собой дебаты, аргументы, опросы или расширенное обсуждение. Если вы считаете, что этот вопрос можно...
Я пытаюсь установить службу Windows с помощью InstallUtil.exe и получаю сообщение об ошибке System.BadImageFormatException: не удалось загрузить файл или сборку ' {xxx.exe}' или одну из его зависимостей. Была сделана попытка загрузить программу с неправильным форматом. Что дает? РЕДАКТИРОВАТЬ: (Не...
Я выполняю некоторую критическую для производительности работу на C ++, и в настоящее время мы используем целочисленные вычисления для задач, которые по своей сути являются плавающими, потому что «они быстрее». Это вызывает множество неприятных проблем и добавляет много надоедливого кода. Теперь я...
В книге я прочитал следующее: 32-битные процессоры имеют 2 ^ 32 возможных адреса, в то время как современные 64-битные процессоры имеют 48-битное адресное пространство. Я ожидал, что если это 64-битный процессор, адресное пространство также должно быть 2 ^ 64. Поэтому мне было интересно, в чем...
Что rep; nopзначит? Это то же самое, что и pauseинструкция? Это то же самое, что rep nop(без точки с запятой)? Чем отличается простая nopинструкция? По-разному ли ведет себя на процессорах AMD и Intel? (бонус) Где официальная документация к этим инструкциям? Мотивация на этот вопрос После...
Я изучал повторный вход в программирование. На этом сайте IBM (действительно хороший). Я основал код, скопированный ниже. Это первый код, который катится по сайту. Код пытается показать проблемы, связанные с общим доступом к переменной при нелинейной разработке текстовой программы (асинхронность),...
Я нахожусь на Whiskey Lake i7-8565U и анализирую счетчики перфектов и время для копирования 512 КБ данных (в два раза больше, чем размер кэша L2), и столкнулся с некоторым недоразумением относительно работы устройства предварительной выборки L2 HW. В Руководстве Intel Vol.4 MSR есть MSR, 0x1A4бит 0...