Вопросы с тегом 'x86-64'

x86-64 - это 64-битное расширение для архитектуры Intel x86
14
ответов

Какова цель инструкции LEA?

Для меня это просто похоже на фанки MOV. Какова его цель и когда я должен ее использовать?
задан 01 нояб. '09 в 23:57
12
ответов

Как определить, была ли сборка .NET построена для x86 или x64?

У меня есть произвольный список сборников .NET. Мне нужно программно проверить, была ли построена каждая DLL для x86 (в отличие от x64 или Any CPU). Возможно ли это?
задан 07 нояб. '08 в 1:14
4
ответов

Почему введение бесполезных инструкций MOV ускоряет узкую петлю в сборке x86_64?

Фон: При оптимизации некоторого Pascal кода со встроенным языком ассемблера я заметил ненужную инструкцию MOV и удалил ее. К моему удивлению, удаление ненужной команды заставило мою программу замедлить работу. Я обнаружил, что добавление произ...
задан 27 июля '13 в 13:25
4
ответов

Почему GCC использует умножение на странное число при реализации целочисленного деления?

Я читал об операциях сборки div и mul, и я решил увидеть их в действии, написав простую программу в C: File division.c #include <stdlib.h> #include <stdio.h> int main() { size_t i = 9; size_t j = i / 5; printf("%zu\n",j);...
задан 16 дек. '16 в 14:59
11
ответов

Как найти, если собственный DLL файл скомпилирован как x64 или x86?

Я хочу определить, выполняется ли собственная сборка как x64 или x86 из приложения управляемого кода (С#). Я думаю, что он должен где-то в заголовке PE, так как загрузчик ОС должен знать эту информацию, но я не мог ее найти. Конечно, я предпочитаю д...
задан 26 янв. '09 в 20:50
7
ответов

Ориентация как 32-битной, так и 64-битной с Visual Studio в том же решении/проекте

У меня есть небольшая дилемма о том, как настроить мои визуальные студийные сборки для мультитаргетинга. Фон: С#.NET v2.0 с p/invoking в сторонние 32-разрядные библиотеки DLL, SQL compact v3.5 SP1, с проектом установки. Сейчас целевая платформа уста...
задан 28 сент. '08 в 16:05
4
ответов

Что такое вызывающие соглашения для системных вызовов UNIX и Linux на i386 и x86-64

Следующие ссылки объясняют условные обозначения системных вызовов x86-32 как для UNIX (BSD flavor), так и для Linux: http://www.int80h.org/bsdasm/#system-calls http://www.freebsd.org/doc/en/books/developers-handbook/x86-system-calls.html Но како...
задан 29 марта '10 в 8:48
10
ответов

Почему x86 некрасиво? Почему он считается уступающим по сравнению с другими?

Недавно я читал некоторые архивы SO и встречался с утверждениями относительно архитектуры x86. Зачем нам нужна разная архитектура процессора для сервера и мини/мэйнфрейма и смешанного ядра? говорит "Архитектура ПК - это беспорядок, любой разрабо...
задан 21 апр. '10 в 5:14
5
ответов

Почему Windows64 использует другое соглашение о вызове от всех других ОС на x86-64?

AMD имеет спецификацию ABI, которая описывает соглашение о вызове для использования на x86-64. Все ОС следуют за ним, за исключением Windows, у которой есть собственное соглашение о вызове x86-64. Почему? Кто-нибудь знает технические, исторические и...
задан 13 дек. '10 в 16:45
11
ответов

Плавающая точка и целочисленные вычисления на современном оборудовании

Я выполняю критическую работу с высокой производительностью на С++, и в настоящее время мы используем целочисленные вычисления для задач, которые являются по сути плавающей точкой, потому что "быстрее". Это вызывает множество неприятных проблем и доб...
задан 31 марта '10 в 6:15
7
ответов

System.BadImageFormatException: не удалось загрузить файл или сборку (из installutil.exe)

Я пытаюсь установить службу Windows с помощью InstallUtil.exe и получаю сообщение об ошибке System.BadImageFormatException: Не удалось загрузить файл или сборку '{xxx.exe}' или одну из его зависимостей. Была сделана попытка загрузить программу с не...
задан 27 нояб. '08 в 10:39
2
ответов

Почему инструкции x86-64 на 32-разрядных регистрах обнуляют верхнюю часть полного 64-битного регистра?

В x86-64 Обзор руководств Intel Я прочитал Возможно, самым удивительным фактом является то, что команда типа MOV EAX, EBX автоматически обнуляет верхние 32 бита регистра RAX. Документация Intel (3.4.1.1 Общие регистры в 64-битном режиме в базово...
задан 24 июня '12 в 14:40
2
ответов

Что такое "rep; nop;" означают в сборке x86?

Что означает rep; nop? Это то же самое, что и инструкция pause? Это то же самое, что и rep nop (без точки с запятой)? Какая разница с простой инструкцией nop? Одинаково ли это относится к процессорам AMD и Intel? (бонус) Где находится офици...
задан 17 авг. '11 в 2:12
4
ответов

Почему memcmp (a, b, 4) иногда оптимизируется только для сравнения uint32?

С учетом этого кода: #include <string.h> int equal4(const char* a, const char* b) { return memcmp(a, b, 4) == 0; } int less4(const char* a, const char* b) { return memcmp(a, b, 4) < 0; } GCC 7 на x86_64 ввел оптимизацию для перв...
задан 12 июля '17 в 11:25
7
ответов

Почему в 64-битных системах имеется только 48-битное адресное пространство?

В книге я прочитал следующее: 32-разрядные процессоры имеют 2 ^ 32 возможных адреса, а текущие 64-разрядные процессоры имеют 48-битное адресное пространство Мое ожидание состояло в том, что если это 64-разрядный процессор, адресное пространство т...
задан 16 июля '11 в 14:09