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

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

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

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

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

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

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

Фон: При оптимизации некоторого Pascal кода со встроенным языком ассемблера я заметил ненужную инструкцию MOV и удалил ее. К моему удивлению, удаление ненужной команды заставило мою программу замедлить работу. Я обнаружил, что добавление произ...
27 июл. '13 в 10: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 в 11:59
5

Что такое вызывающие соглашения для системных вызовов 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 в 5:48
4

Как Rust 128-битное целое число "i128" работает в 64-битной системе?

Rust имеет 128-битные целые числа, они обозначены типом данных i128 (и u128 для беззнаковых целых): let a: i128 = 170141183460469231731687303715884105727; Как Rust заставляет эти значения i128 работать в 64-битной системе; например как это делает ...
03 авг. '19 в 16:44
11

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Что означает rep; nop? Это то же самое, что и инструкция pause? Это то же самое, что и rep nop (без точки с запятой)? Какая разница с простой инструкцией nop? Одинаково ли это относится к процессорам AMD и Intel? (бонус) Где находится офици...
16 авг. '11 в 23: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 в 8:25